ImageMagick裁剪无效

4
我正在尝试使用ImageMagick对一张图片进行裁剪,但结果并非我所期望的。为了找出错误,我决定将裁剪值设为0。然而,即使裁剪值为0,该图片仍被裁剪。
以下是代码:
$img = new Imagick();
$img->readImage("{german-grammar.pdf}[17]");
$img->trimImage(10);
$width = $img->getImageWidth();
$height= $img->getImageHeight();
$img->setImagePage($width,$height, 0, 0); //Solution
$img->cropImage($width, $height,0,0); //Original Problem lime
$img->setImagePage(0,0,0,0);
$img->writeImage($ImagesPath.$ImageName);

输入是一个PDF文件。

如果有人能告诉我我做错了什么就太好了。毫无疑问,剪裁值为0不应该剪裁任何内容。

谢谢!

Cymro


为什么最后没有使用writeImage()的原因是什么?你能简化一下代码,找出最小的不起作用的部分,并给出输入图像和输出图像的尺寸吗? - Mark Setchell
马克,我已经包含了2张图片并标出了引起异常行为的代码行。writeImage()对我没有起作用。在谷歌搜索后,我读到了一篇关于使用file_put_contents和Imagemagick的帖子,这样做可以正常工作。 - Cymro
Mark,我再次尝试了writeImage()函数,这次成功了。我已经更新了上面的代码以展示writeImage()函数。 - Cymro
尝试在“修剪”之后但在“裁剪”之前重新分页图像。 - Mark Setchell
马克,它起作用了。谢谢你。为什么不提供任何答案,然后我可以接受它呢?我想这会给你点数并且你已经赚到它们了! - Cymro
1个回答

3

我认为在trimImage()之后、cropImage()之前,你需要立即重新分页你的图像。如果你希望图片忘记它曾经是一个更大的图像的一部分,快乐地拥有自己的新形状和大小,那么在对其几何结构进行任何更改(例如修剪和调整大小)后重新分页图像通常是一个好主意。


我的问题中的代码已经更新,以展示建议的解决方案。 - Cymro
做得好,你考虑到了社区的利益,并向大家展示了如何解决问题! - Mark Setchell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接