34

ImageMagick在将 pdf 转换为 jpeg 时,升级文本质量会下降:

旧图像 在此处输入图像描述

新的图像 在此处输入图像描述 转换命令:convert foo.pdf foo.jpeg

旧 ImageMagick 版本:

[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

生成的文件大小:

-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 后

[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

生成的文件大小:

-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

我试过使用antialias标志:

convert -antialias  foo.pdf foo.jpeg

什么都没做,我尝试设置一个更高的值quality

convert -quality 100 foo.pdf foo.jpeg

超级采样

convert -density 288 -background white -alpha off foo.pdf -resize 25%  foo.jpeg

两者都提供了更大的文件和更好的结果,但运行时间更长,质量低于旧 ImageMagick 版本。

有什么建议吗?

链接到文件

4

3 回答 3

38

我看到您的示例文件存在同样的问题。看起来 ImageMagick 的 PDF 转换代表可能已随着新安装而改变。

如果您尝试convert -verbose foo.pdf foo.jpeg,您是否-sDEVICE=pngalpha在发送到 gs 的命令中看到?pnmraw 设备过去曾使用过,切换回该设备似乎可以解决我的问题。

在 ImageMagick 的delegates.xml文件中(可能在 /etc/ImageMagick 中,但可能在其他地方,具体取决于您的设置),查找decode="ps:alpha"委托行并将-sDEVICE=pngalpha命令更改为-sDEVICE=pnmraw. (您可能只在文件中搜索 pngalpha 。)

于 2013-05-08T08:08:29.577 回答
10

似乎DPI的问题。转换 pdf 时,imagemagick 使用Ghostscript。你可以跳过使用 imagemagick。

$ 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。

$ convert -density 200x200 foo.pdf foo.jpg
于 2015-03-22T10:00:19.097 回答
0

PDF 文件是矢量文件,没有特定的大小。它们的大小通过在读取 PDF 文件之前定义密度和单位来控制。通过超级采样,您可以为相同的所需输出文件大小获得更好的质量。这意味着将 PDF 栅格化为大尺寸,然后调整为所需的实际尺寸。例如在 ImageMagick 中:

convert -units pixelsperinch -density 288 image.pdf -resize 25% output.jpg

如果不设置,标称密度为 72 dpi。所以 72*4=288。然后将大小调整 1/5=25% 会恢复到相同的默认大小,但看起来应该会好很多。根据需要更改密度或调整大小以处理质量和最终大小。

于 2018-02-02T05:13:29.490 回答