使用PHP和ImageMagick将PDF转换为高质量的JPG

Bri*_*yer 6 php pdf imagemagick image-processing imagick

我正在撕扯我的头发.

我有一个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();
Run Code Online (Sandbox Code Playgroud)

但它仍然无效.

我也尝试过使用$ img-> resizeImage()来调整JPG的大小,但如果尺寸合适,那么它的质量非常差.

完全难倒.感谢您的帮助!

dak*_*dad 8

您需要在读取图像之前设置分辨率.请参阅本手册中的注释 - 看看是否有效.


use*_*058 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();
Run Code Online (Sandbox Code Playgroud)