I'm tearing my hair out.
I have a 300 DPI PDF that I want to turn into a 300 DPI JPG that's 2550x3300. I am told ImageMagick can do this, so I get ImageMagick to work, but it only returns a JPG that is sized about 1/5 the original PDF size.
It's not the source image--I've done it with several high quality PDFs and they all have the same problem.
After scouring StackOverflow for ideas, this is what I came up with to use:
$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();
But it still doesn't work.
I also have tried using $img->resizeImage() to resize the JPG, but then it comes out at really bad quality, if the right size.
Totally stumped. Appreciate your help!
You need to set the resolution before reading the image in. Please see this comment on the manual - see if that will work.
This would be the correct way, the quality will improve.
$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();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With