PHP自动生成一张图片的缩略图
来源:动力火车·http://www.dltrain.com
Code: |
// 本函数从源文件取出图象,设定成指定大小,并输出到目的文件 // 源文件格式:gif,jpg,jpe,jpeg,png // 目的文件格式:jpg // 参数说明: // $srcFile 源文件 // $dstFile 目标文件 // $dstW 目标图象宽度 // $dstH 目标图象高度 function makethumb($srcFile,$dstFile,$dstW,$dstH) { $data = GetImageSize($srcFile,&$info); switch ($data[2]) { case 1: $im = @ImageCreateFromGIF($srcFile); break; case 2: $im = @imagecreatefromjpeg($srcFile); break; case 3: $im = @ImageCreateFromPNG($srcFile); break; } $srcW=ImageSX($im); $srcH=ImageSY($im); $dstX=0; $dstY=0; if ($srcW*$dstH>$srcH*$dstW) { $fdstH=round($srcH*$dstW/$srcW); $dstY=floor(($dstH-$fdstH)/2); $fdstW=$dstW; } else { $fdstW=round($srcW*$dstH/$srcH); $dstX=floor(($dstW-$fdstW)/2); $fdstH=$dstH; } $ni=ImageCreate($dstW,$dstH); $dstX=($dstX<0)?0:$dstX; $dstY=($dstX<0)?0:$dstY; $dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX; $dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY; $black = ImageColorAllocate($ni, 0,0,0);//填充的背景色你可以重新指定,我用的是黑色 imagefilledrectangle($ni,0,0,$dstW,$dstH,$black); ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH); ImageJpeg($ni,$dstFile);//如果你要把图片直接输出到浏览器, //那么把第二个参数去掉,并用header()函数指定mine类型先 imagedestroy($im); imagedestroy($ni); } |
评论:
faint!~~~~~~~~~~~~~
Posted by: faint! | 2004年07月07日 下午06时12分
这个代码原来应该在gd1.6.x下工作。
如果是在gd2中
imagecreate要改成imagecreatetruecolor
imagecopyresized要改成imagecopyresampled
Posted by: ginger | 2004年07月09日 下午05时42分