尝试裁剪图像调整大小并通过以下代码再次裁剪:
$im = new Imagick($file_name);
$result=$im->cropImage($w,$h,$x,$y);
$result=$im->resizeImage($nw, $nh, $resizefilter, 1,true);
$result=$im->cropImage($nw,$nh,$x,$y);
$iw=$im->getImageWidth();
$ih=$im->getImageHeight();
但结果有错误的图像($ im)大小$ iw,$ ih是1x1px。
在不同的组合找到解决方案之后,在resizeImage()之后插入相同大小的thumbnailImage():
$im = new Imagick($file_name);
$result=$im->cropImage($w,$h,$x,$y);
$result=$im->resizeImage($nw, $nh, $resizefilter, 1,true);
$result=$im->thumbnailImage($nw,$nh);
$result=$im->cropImage($nw,$nh,$x,$y);
$iw=$im->getImageWidth();
$ih=$im->getImageHeight();
为什么会这样?可能是其他解决办法吗?
答案 0 :(得分:1)
解决方案:
$im = new Imagick($file_name);
$result=$im->cropImage($w,$h,$x,$y);
$result=$im->setImagePage($w,$h,0,0);
$result=$im->resizeImage($nw, $nh, $resizefilter, 1,true);
$result=$im->cropImage($nw,$nh,$x,$y);
$result=$im->setImagePage($nw,$nh,0,0);
$iw=$im->getImageWidth();
$ih=$im->getImageHeight();