【发布时间】:2012-10-27 17:43:34
【问题描述】:
我正在使用以下命令将最终用户上传的各种 PDF 转换为图像
-density 140 -limit memory 64MB -limit map 128MB [pdffile] page.png
这是结果。右侧是原始 PDF,左侧是输出图像。如您所见,颜色明显不同。
什么可能导致这个问题以及如何解决它?
【问题讨论】:
标签: image-processing imagemagick
我正在使用以下命令将最终用户上传的各种 PDF 转换为图像
-density 140 -limit memory 64MB -limit map 128MB [pdffile] page.png
这是结果。右侧是原始 PDF,左侧是输出图像。如您所见,颜色明显不同。
什么可能导致这个问题以及如何解决它?
【问题讨论】:
标签: image-processing imagemagick
尝试以下命令:
-density 140 -limit memory 64MB -limit map 128MB -colorspace RGB [pdffile] page.png
【讨论】:
sRGB 而不是RGB。
编辑:后来发现ImageMagick可以做的很好,我只需要使用-colorspace sRGB
我的最终命令是:
convert -density 560 -limit memory 64MB -limit map 128MB \
-colorspace sRGB [pdffile] -scale 25% page.png
过采样和缩小是为了解决下面提到的不良抗锯齿。
在我发现之前,这是我之前的解决方案...
就我而言,ImageMagick 的convert 产生的颜色过饱和,与问题中的颜色非常相似。我试图使用 IM 6.7.7.10-6ubuntu3 转换 this file。
-resample 100 没有区别。
-colorspace RGB 似乎产生了更准确的饱和度,但整个图像比应有的更暗。
奇怪的是,this suggestion 使用 GhostScript 而不是 ImageMagick 进行转换,产生了非常接近正确的颜色:
gs -q -sDEVICE=png16m -dSubsetFonts=true -dEmbedAllFonts=true \
-sOutputFile=page.png -r200 -dBATCH -dNOPAUSE [pdffile]
(最初的建议通过了-dUseCIEColor 选项,但在我的情况下,这似乎降低了伽玛:亮像素很好,但暗像素太暗,所以我删除了它。)
在那之后,唯一困扰我的是抗锯齿/边缘在某些地方有点偏离(尤其是在经过 45 度的曲线上可见)。为了改善这一点,我以所需分辨率的四倍创建输出,然后按比例缩小,使这些错误几乎无法察觉。请注意,我必须为此使用 ImageMagick 的 -scale,而 not -geometry 或 -resize,以避免 bicubic ringing effects。
【讨论】:
使用-resample 选项:
-density 140 -resample 100 -limit memory 64MB -limit map 128MB [pdffile] page.png
【讨论】:
开源 MuPDF util mutool 使用以下默认参数保留颜色和大小 您需要在命令末尾列出以逗号分隔的页面。
mutool draw -o draw%d.png abook.pdf 1,2
否则,如果使用 Linux,请在使用 imagemagick 的转换时尝试 Windows 以获得更好的色彩空间 RGB 解释。
【讨论】:
下图显示了如果您以更高的分辨率进行采样然后按比例缩小,抗锯齿效果会如何改善。
虽然1120的质量比560稍微好一点,但是转换的时间比较长,所以我大概会选择560比较好:质量取舍。
-colorspace sRGB -density 140
-colorspace sRGB -density 280 -scale 50%
-colorspace sRGB -density 420 -scale 33.3333%
-colorspace sRGB -density 560 -scale 25%
-colorspace sRGB -density 1120 -scale 12.5%
(如果您下载最后两张图像并在您最喜欢的图像查看器中在它们之间切换,则更容易看到差异。或者向上滚动此图像列表,而不是向下滚动。您应该看起来它们变得越来越难看。)
【讨论】: