这段PHP生成缩略图的代码具体怎么用呀?!
大家否能帮我一下。
上传文件:flash.gif
我的代码:
$srcFile = "data/$id/".$reg_date."/".$s_file_name1;
$dstFile = "data/$id/".$reg_date."_s/".$s_file_name1;
@makethumb($srcFile,$dstFile,500,400);
结果:
data/test/342954/flash.gif
data/test/342954_s/flash.gif
$picdata = GetImageSize($srcFile,&$info); //返回值是1
switch ($picdata[2]) {
case 1:
$im = @ImageCreateFromGIF($srcFile);
echo $im; 值为空?????
break;
为什么会这样?
复制内容到剪贴板
代码:
function makethumb($srcFile,$dstFile,$dstW,$dstH) {
$picdata = GetImageSize($srcFile,&$info);
echo $picdata[2];
switch ($picdata[2]) {
case 1:
$im = @ImageCreateFromGIF($srcFile);
echo $im;
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);
imagedestroy($im);
imagedestroy($ni);
}