使用ImageMagick 6.2.8生成图像缩略图而不进行拉伸

时间:2014-03-07 12:30:24

标签: php imagick

填充区域标志('^'标志)是支持 IM v6.3.8-3
但我客户的生产服务器的版本为 ImageMagick 6.2.8 <登记/> 现在在我的本地服务器中,我使用此命令生成缩略图,它可以正常工作:

convert image.jpg -resize "280x210^" -gravity Center -crop "280x210+0+0" thumbnail.jpg

由于我的客户端的生产服务器不支持'^'flag ,如何在不使用缩略图的情况下生成缩略图? (或者可以用PHP或BASH手动计算)
我应该使用 -extent ,它是否会拉伸图像?
我还读了 this ,我不确定^ flag是不是让图像拉伸,因为这就是我想要的,生成缩略图而不拉伸它。
注意:我在服务器上没有root访问权限。我使用PHP和BASH来运行命令。

修改
调整大小和裁剪时我也不想要任何其他背景颜色。

2 个答案:

答案 0 :(得分:0)

尝试

convert image.jpg -background black -resize 280 
-gravity center -crop 280x210+0+0 -extent 280x210 image.c.jpg

答案 1 :(得分:0)

我找到了解决方案 这是我使用的 PHP 函数:

function imgconvert($in,$out,$size){
  $size_arr=explode('x',$size);
  $resize=( ($size_arr[0]/$size_arr[1]) > 1.775 ? $size_arr[0].'x':'x'.$size_arr[1]);
  system("convert \"$in\" -resize $resize -gravity Center -crop \"$size+0+0\" \"$out\"");
}


似乎如果宽度/高度大于1.775,我应该使用widthX作为调整大小值,否则我应该使用Xheight。