Reputation: 1019
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!
Upvotes: 9
Views: 25768
Reputation: 330
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();
Upvotes: 16
Reputation: 2955
You need to set the resolution before reading the image in. Please see this comment on the manual - see if that will work.
Upvotes: 13