6

我在扯头发。

我有一个 300 DPI PDF,我想将其转换为 300 DPI JPG,即 2550x3300。我被告知 ImageMagick 可以做到这一点,所以我让 ImageMagick 工作,但它只返回一个大小约为原始 PDF 大小 1/5 的 JPG。

这不是源图像——我已经用几个高质量的 PDF 完成了它,它们都有同样的问题。

在搜索了 StackOverflow 的想法之后,这就是我想出的使用方法:

$im = new imagick($srcimg);
$im->setImageResolution(2550,3300);
$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG); 
$im->setImageCompressionQuality(100);
$im->writeImage($targetimg);
$im->clear();
$im->destroy();

但它仍然不起作用。

我也尝试过使用 $img->resizeImage() 来调整 JPG 的大小,但是如果大小合适的话,它的质量真的很差。

完全被难住了。感谢你的帮助!

4

2 回答 2

9

您需要在读取图像之前设置分辨率。请参阅手册上的此评论- 看看这是否可行。

于 2013-03-06T03:03:55.283 回答
8

这将是正确的方法,质量会提高。

$im = new imagick();
$im->setResolution(300, 300);
$im->readImage($srcimg);
$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG); 
$im->setImageCompressionQuality(100);
$im->writeImage($targetimg);
$im->clear();
$im->destroy();
于 2015-02-11T16:02:52.310 回答