php 缩略图 生成文件夹,生成缩略图PHP

/*

函数:生成缩略图

MakeBuild("images/a.jpg","news/b.jpg","100");

参数:

echo $BuildFile; 原图 带路径

echo $newFile; 生成的缩略图 带路径

echo $File_width; 缩略图宽度值

echo $File_height; 缩略图高度值 (默认为宽度的比例值)

echo $rate; 缩略图象品质;

*/

function MakeBuild($BuildFile,$newFile,$File_width,$File_height=0,$rate=1000) {

if(!is_file($BuildFile)){

$this->msg("文件 ".$BuildFile." 不是一个有效的图形文件!nn系统无法生成该文件的缩略图!");

return false;

}

$data = GetImageSize($BuildFile);

switch($data[2]){

case 1:

$im = @ImageCreateFromGIF($BuildFile);

break;

case 2:

$im = @ImageCreateFromJPEG($BuildFile);

break;

case 3:

$im = @ImageCreateFromPNG($BuildFile);

break;

}

if(!$im){

return false;

}

else{

$srcW = ImageSX($im); # 取得原图宽度;

$srcH = ImageSY($im); # 取得原图高度;

$dstX = 0;

$dstY = 0;

if($File_height==0){

$File_height = $File_width/$srcW*$srcH;

}

if ($srcW*$File_height>$srcH*$File_width){

$fFile_height = round($srcH*$File_width/$srcW);

$dstY = floor(($File_height-$fFile_height)/2);

$fFile_width = $File_width;

}

else {

$fFile_width = round($srcW*$File_height/$srcH);

$dstX = floor(($File_width-$fFile_width)/2);

$fFile_height = $File_height;

}

$ni = ImageCreateTrueColor($File_width,$File_height);

$dstX = ($dstX<0)?0:$dstX;

$dstY = ($dstX<0)?0:$dstY;

$dstX = ($dstX>($File_width/2))?floor($File_width/2):$dstX;

$dstY = ($dstY>($File_height/2))?floor($File_height/s):$dstY;

ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fFile_width,$fFile_height,$srcW,$srcH);

ImageJpeg($ni,$newFile,$rate); # 生成缩略图;

imagedestroy($im); # imagedestroy(resource) 释放image关联的内存

}

}

$srcimage = $_GET['image'];

$srcimgurl = "./live/data/attachment/forum/".$image;

$srcimgurl = "./live/data/attachment/forum/201207/30/105704r7zmqhmsltqpqxwh.jpg";

$srcimgs = explode("/",$image);

$srcimg = $srcimgs[count($srcimgs)-1];

$srcimg2 = explode(".",$srcimg);

$newimg = $srcimg2[0]."_slt.".$srcimg2[1];

$newimage = str_replace($srcimg,$newimg,$srcimage);

$newimgurl = str_replace($srcimg,$newimg,$filename);

MakeBuild($filename,$newimgurl,"600");

echo "201207/30/105704r7zmqhmsltqpqxwh.jpg";

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值