我正在撕开我的头发。
我有一个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的大小,但如果尺寸合适,那么它的质量非常差。
完全难倒。感谢您的帮助!
答案 0 :(得分:8)
您需要在阅读图片之前设置分辨率。请see this comment on the manual - 看看是否有效。
答案 1 :(得分:7)
这将是正确的方式,质量将提高。
$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();