【发布时间】:2015-01-27 04:13:19
【问题描述】:
我正在尝试从同一个上传的图像创建 3 个不同大小的缩略图图像。目前,我使用下面的代码创建 1 个 150 像素宽的缩略图。
有没有一种简单的方法可以做到这一点,而不是为我需要的每个缩略图重复三次相同的代码?
我正在尝试创建 3 种尺寸的缩略图:750 像素宽、150 像素宽和 70 像素宽。
这是我用来制作 150 像素宽的缩略图的代码。
PHP 是否有一个函数来做这样的事情,或者正在为每个尺寸重复下面的代码,我需要我唯一的选择。
if(file_exists($thisImage)) {
$imageName = $thisImage;
$imageInfo = finfo_open(FILEINFO_MIME_TYPE);
$imageType = finfo_file($imageInfo, $imageName);
finfo_close($imageInfo);
if($imageType == 'image/pjeg' || $imageType == 'image/jpeg' || $imageType == 'image/jpg') {
$imgSource = imagecreatefromjpeg($thisImage);
} elseif ($imageType == 'image/png') {
$imgSource = imagecreatefrompng($thisImage);
} elseif ($imageType == 'image/gif') {
$imgSource = imagecreatefromgif($thisImage);
} else {
$imgSource = false;
return false;
}
if($imgSource) {
list($width,$height)=getimagesize($thisImage);
$thumbImageWidth = 150;
$thumbImageHeight = ($height/$width)*$thumbImageWidth;
$tempThumbImage = imagecreatetruecolor($thumbImageWidth,$thumbImageHeight);
if(!imagecopyresampled($tempThumbImage,$imgSource,0,0,0,0,$thumbImageWidth,$thumbImageHeight,$width,$height)) return false;
$thumbImageTarget = $thisPath.$thisName;
if(!imagejpeg($tempThumbImage,$thumbImageTarget,100)) return false;
if(!imagedestroy($imgSource)) return false;
if(!imagedestroy($tempThumbImage)) return false;
if(!unlink($thisImage)) return false;
return true;
}
} else {
return false;
}
【问题讨论】:
-
你可以试试imagemagick库..imagemagick.org..