本文实例讲述了PHP生成图片缩略图功能。分享给大家供大家参考,具体如下:
完整代码如下(为方便阅读,代码使用进行了格式化处理):
$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 = ImageCreateTrueColor($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;
$white = ImageColorAllocate($ni,255,255);
$black = ImageColorAllocate($ni,0);
imagefilledrectangle($ni,$white); // 填充背景色
ImageCopyResized($ni,$im,$dstX,$dstY,$fdstW,$fdstH,$srcW,$srcH);
if ($markwords != null) {
$markwords = iconv("gb2312","UTF-8",$markwords);
//转换文字编码
ImageTTFText($ni,20,30,450,560,$black,"simhei.ttf",$markwords); //写入文字水印
//参数依次为,文字大小|偏转度|横坐标|纵坐标|文字颜色|文字类型|文字内容
} elseif ($markimage != null) {
$wimage_data = GetImageSize($markimage);
switch ($wimage_data[2]) {
case 1:
$wimage = @ImageCreateFromGIF($markimage);
break;
case 2:
$wimage = @ImageCreateFromJPEG($markimage);
break;
case 3:
$wimage = @ImageCreateFromPNG($markimage);
break;
}
imagecopy($ni,$wimage,500,88,31); //写入图片水印,水印图片大小默认为88*31
imagedestroy($wimage);
}
ImageJpeg($ni,$rate);
ImageJpeg($ni,$srcFile,$rate);
imagedestroy($im);
imagedestroy($ni);
}
?>
PS:这里再为大家推荐几款比较实用的图片处理工具供大家参考使用:
ICO图标在线生成工具:
在线图片格式转换(jpg/bmp/gif/png)工具:
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。