After upgrading ImageMagick
text quality got degraded when convert pdf to jpeg:
Old image
New Image Conversion command: convert foo.pdf foo.jpeg
Old ImageMagick version:
[root@home]# convert -version Version: ImageMagick 6.2.8 05/07/12 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html Copyright: Copyright (C) 1999-2006 ImageMagick Studio LLC
generated files size:
-rw-r--r-- 1 root root 139K Apr 2 16:11 foo-0.jpeg -rw-r--r-- 1 root root 130K Apr 2 16:11 foo-1.jpeg -rw-r--r-- 1 root root 334K Mar 24 14:27 foo.pdf
After upgrading ImageMagick
[root@home]# convert -version Version: ImageMagick 6.7.8-10 2012-08-17 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC Features: OpenMP
generated files size:
-rw-r--r-- 1 root root 60K Apr 2 16:11 foo-0.jpeg -rw-r--r-- 1 root root 55K Apr 2 16:11 foo-1.jpeg -rw-r--r-- 1 root root 334K Mar 24 14:27 foo.pdf
I've tried using antialias
flag:
convert -antialias foo.pdf foo.jpeg
Which did nothing, I've tried setting an higher quality
:
convert -quality 100 foo.pdf foo.jpeg
and super sampling:
convert -density 288 -background white -alpha off foo.pdf -resize 25% foo.jpeg
both gave bigger files and better results, but ran more time and had lower quality that the old ImageMagick version.
any advises?
The ghostscript interpreter is used by ImageMagick and GraphicsMagick to convert Postscript and similar formats into images.
ImageMagick is a great customizable tool for converting PDF files to individual image files with a single command.
I see the same problem with your sample file. It looks like ImageMagick's delegates for the PDF conversion may have changed with the new install.
If you try convert -verbose foo.pdf foo.jpeg
, do you see -sDEVICE=pngalpha
in the command that gets sent to gs? The pnmraw device has been used in the past, and switching back to that seems to fix the problem for me.
In ImageMagick's delegates.xml
file (which may be in /etc/ImageMagick, but could be somewhere else depending on your setup), look for the decode="ps:alpha"
delegate line and change -sDEVICE=pngalpha
in the command to -sDEVICE=pnmraw
. (You can probably just search for pngalpha in the file.)
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