Convert PDF to high quality JPG using PHP and ImageMagick

Brian Mayer picture Brian Mayer · Mar 6, 2013 · Viewed 18.3k times · Source

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!

Answer

dakdad picture dakdad · Mar 6, 2013

You need to set the resolution before reading the image in. Please see this comment on the manual - see if that will work.