$size1 = 170;
$size2 = 128;
if($width > $height){
exec("convert ".$startfile." -resize x".$size2." -quality 100 ".$resultfile);
} else {
exec("convert ".$startfile." -resize ".$size1." -quality 100 ".$resultfile);
}
exec("convert ".$resultfile." -gravity Center -crop ".$size1."x".$size2."+0+0 ".$resultfile);
需要帮助来调整图像大小170x128像素。 上面的功能正常,但有一个问题。如您所见,如果图像宽度大于高度,则脚本首先使图像高度为128像素。当宽度和高度之间存在小的差异时,会出现问题。
例如,如果图像尺寸为387x310像素,则脚本将使用语句 if($ width> $ height),并使图像高度为128px。问题是,同时图像宽度将调整为160像素。但是在调整大小后我需要170像素的宽度。
我需要知道将图像宽度调整为128像素高度后的图像宽度。我需要这样的东西:
if($width > $height && $width_after_resizing > 127) {
} else {
}
有什么方法可以在裁剪前计算图像尺寸吗?感谢。
答案 0 :(得分:0)
如果您启用了gd,则可以使用getimagesize http://php.net/manual/en/function.getimagesize.php
答案 1 :(得分:0)
根据$ height检查$ width假定目标是方形的。 如果你改变了怎么办?
if($width > $height){
到
if($width/$size1 > $height/$size2){
答案 2 :(得分:0)
您想要调整宽高比以获得指定的大小。
添加'!'到-resize参数。
有关imagemagick的更多直接信息,请访问IM论坛 http://www.imagemagick.org/discourse-server/viewforum.php?f=1