我正在为数字 Assets 经理创建缩略图,用imagemagick做到这一点的最佳方法是什么?
那里有好的资源吗?
最佳答案
我解决了,将与世界分享!它将.ai,.psd,.jpg,.png,.gif转换为缩略图。
这是一个采用4个参数的函数:
$ dir-要保存到的目录。
$ tmpName-用来命名文件(扩展名除外)的名称。
$ fileType-自我解释。
$ size-大或小。
function thumbGenerator($dir,$tmpName,$fileType,$size){
$saveFileType = "png";
$imagePath = $dir.$tmpName.".".$fileType;
$image = new Imagick();
$image->readimage($imagePath);
if($fileType == "psd"){
$image->setIteratorIndex(0);
}
$dimensions = $image->getImageGeometry();
$width = $dimensions['width'];
$height = $dimensions['height'];
if($size == "large"){
$maxWidth = 720;
$maxHeight =720;
}
if($size == "small"){
$maxWidth = 250;
$maxHeight =250;
}
if($height > $width){
//Portrait
if($height > $maxHeight)
$image->thumbnailImage(0, $maxHeight);
$dimensions = $image->getImageGeometry();
if($dimensions['width'] > $maxWidth){
$image->thumbnailImage($maxWidth, 0);
}
}elseif($height < $width){
//Landscape
$image->thumbnailImage($maxWidth, 0);
}else{
//square
$image->thumbnailImage($maxWidth, 0);
}
if($size == "large"){
$image->writeImage($dir . $tmpName."-lg.".$saveFileType);
}
if($size == "small"){
$image->writeImage($dir . $tmpName."-sm.".$saveFileType);;
}
}
关于php - 使用imagick将.psd和.ai转换为PNG/JPG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12516842/