PHP生成图片缩略图
发布日期:2025-05-04 15:58:25 浏览次数:14 分类:精选文章

本文共 1314 字,大约阅读时间需要 4 分钟。

以下是用于生成图片缩略图的代码函数

public function thumb($file, $dw, $dh) {
// 缩略图保存路径
$path = app()->getRootPath() . 'public/thumb/';
// 获取原始图片资源
$srcImg = $this->getImg($file);
// 获取原始图片尺寸
$infoSrc = getimagesize($file);
$sw = $infoSrc[0];
$sh = $infoSrc[1];
// 创建缩略图画布
$destImg = imagecreatetruecolor($dw, $dh);
// 设置背景色
$bg = imagecolorallocate($destImg, 250, 250, 250);
imagefill($destImg, 0, 0, $bg);
// 计算缩略比例
if ($dh / $dw > $sh / $sw) {
$fw = $dw;
$fh = $sh / $sw * $fw;
} else {
$fh = $dh;
$fw = $fh * $sw / $sh;
}
// 将原始图片复制到缩略画布上
imagecopyresampled($destImg, $srcImg, 0, 0, 0, 0, $fw, $fh, $sw, $sh);
// 生成缩略图文件名
$baseName = 'thumb_' . basename($file);
// 确定保存路径
$savePath = $path . $baseName;
// 保存缩略图
imagejpeg($destImg, $savePath);
}
public function getImg($file) {
// 获取图片文件信息
$info = getimagesize($file);
$fn = $info['mime'];
// 根据图片类型创建对应类型的画布
switch ($fn) {
case 'image/jpeg':
$img = imagecreatefromjpeg($file);
break;
case 'image/gif':
$img = imagecreatefromgif($file);
break;
case 'image/png':
$img = imagecreatefrompng($file);
break;
}
return $img;
}
上一篇:PHP生成短网址方法汇总
下一篇:PHP生成器-动态生成内容的数组

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2026年05月28日 19时36分27秒