php imagemagic crop调整大小裁剪结果是图像1x1

时间:2016-07-21 21:35:18

标签: php imagemagick

尝试裁剪图像调整大小并通过以下代码再次裁剪:

$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();

为什么会这样?可能是其他解决办法吗?

1 个答案:

答案 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();