100
votes

using ImageMagick, what command should i use to convert a PDF to PNG? I need highest quality, smallest file size. this is what I have so far (very slow by the way):

convert -density 300 -depth 8 -quality 85 a.pdf a.png

Looking at what Gmail does when a user "view" a PDF, the quality is awesome and the file size very minimal. The DPI is just 96 (I have to set a density of 300 to get anything decent). Anyone know how GMail does it? Thanks.

4
Using density is also the solution of the converted image too blur. - ch271828n
I need highest quality, smallest file size. At the same time? Impossible. Welcome to the real world! - bers
I guess he meant maximum quality with minimum file size possible or as sharp as original quality without adding unnecessary artifacts that increase file size without making image better. In that case, try convert -density 192 input.pdf -quality 100 -alpha remove output.png somehow -quality 100 may lower the file size. 192 double 96dpi is good enough, and -alpha remove to remove transparent png background. - A. Go

4 Answers

44
votes

when you set the density to 96, doesn't it look good?

when i tried it i saw that saving as jpg resulted with better quality, but larger file size

73
votes

Reducing the image size before output results in something that looks sharper, in my case:

convert -density 300 a.pdf -resize 25% a.png
0
votes
convert -density 192 input.pdf -quality 100 -alpha remove output.png

for pdf text document is good enough. -density 192 double 96dpi, higher just make bigger image and file size -quality 100 somehow this give slightly smaller file size -alpha remove to remove png transparent background

0
votes

To get high quality, one should do "supersampling" in Imagemagick. Convert at a high density, but then resize down as needed (nominal enough to compensate for the high density).

convert -density 288 input.pdf -resize 25% output.png

288=72*4 (72 dpi is default density, so 4x)
25%=1/4

So the 1/4 compensates for the 4x.