ImageMagick convert pdf to jpeg has poor text quality after upgrading ImageMagick version to 6.7.8
升级
旧图
新图片

转换命令:
旧的ImageMagick版本:
1 2 3 | [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 |
生成的文件大小:
1 2 3 | -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 |
升级ImageMagick之后
1 2 3 4 | [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 |
生成的文件大小:
1 2 3 | -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 |
我尝试使用
1 | convert -antialias foo.pdf foo.jpeg |
什么都没做,我尝试设置更高的
1 | convert -quality 100 foo.pdf foo.jpeg |
和超级采样:
1 | convert -density 288 -background white -alpha off foo.pdf -resize 25% foo.jpeg |
两者都提供了更大的文件和更好的结果,但与旧的ImageMagick版本相比,它们运行的时间更长且质量较低。
有什么建议吗?
链接到文件
我在您的示例文件中看到了同样的问题。看起来,使用新安装的ImageMagick的PDF转换委托可能已更改。
如果尝试
在ImageMagick的
DPI似乎有这个问题。当转换PDF,imagemagick使用Ghostscript的。您可以跳过使用imagemagick。
1 | $ gs -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dGridFitTT=2 -dUseCropBox -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r200x200 -sDEVICE=jpeg -dJPEGQ=100 -sOutputFile=foo-%05d.jpg foo.pdf |
将-r选项设置为更高的值。 Ghostscript的默认值为100DPI。
或使用转换选项-density。此选项设置pdf转换的DPI。
1 | $ convert -density 200x200 foo.pdf foo.jpg |
PDF文件是矢量文件,没有特定大小。通过在读取PDF文件之前定义密度和单位来控制它们的大小。通过超级采样,对于相同的所需输出文件大小,可以获得更好的质量。这意味着将PDF栅格化为大尺寸,然后将其调整为所需的实际尺寸。例如在ImageMagick中:
1 | convert -units pixelsperinch -density 288 image.pdf -resize 25% output.jpg |
如果未设置,则标称密度为72 dpi。因此72 * 4 = 288。然后将大小调整为1/5 = 25%,可以恢复为相同的默认大小,但看起来应该更好。根据需要更改密度或调整大小以处理质量和最终大小。