将PDF转换为图像时,ImageMagick会更改颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将PDF转换为图像时,ImageMagick会更改颜色相关的知识,希望对你有一定的参考价值。

我正在使用以下命令将最终用户上传的各种PDF转换为图像

-density 140 -limit memory 64MB -limit map 128MB [pdffile] page.png

这是结果。在右侧,我们有原始PDF和左侧输出图像。正如您所看到的,颜色明显不同。

可能导致这种情况以及如何解决这个问题?

答案

尝试以下命令:

-density 140 -limit memory 64MB -limit map 128MB -colorspace RGB [pdffile] page.png
另一答案

编辑:我后来发现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,而不是-geometry-resize,以避免bicubic ringing effects

另一答案

使用-resample选项:

-density 140 -resample 100 -limit memory 64MB -limit map 128MB [pdffile] page.png
另一答案

开源MuPDF util mutool使用下面的默认参数保留颜色和大小,但需要列出命令末尾用逗号分隔的页面。

mutool draw -to draw%d.png book.pdf 1,2

否则,如果使用Linux,请在使用imagemagick的转换时尝试Windows以获得更好的色彩空间RGB解释。

另一答案

以下图像显示了如果以较高分辨率进行采样然后按比例缩小,抗锯齿如何改善。

虽然1120的质量略好于560,但转换需要很长时间,所以我可能会选择560一段时间:质量权衡。

-colorspace sRGB -density 140

enter image description here

-colorspace sRGB -density 280 -scale 50%

enter image description here

-colorspace sRGB -density 420 -scale 33.3333%

enter image description here

-colorspace sRGB -density 560 -scale 25%

enter image description here

-colorspace sRGB -density 1120 -scale 12.5%

enter image description here

(如果您下载最后两张图像并在您最喜爱的图像查看器之间翻转,则更容易看到区别。或者向上滚动此图像列表,而不是向下滚动。您应该看起来它们逐渐变得更加丑陋。)

以上是关于将PDF转换为图像时,ImageMagick会更改颜色的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick 未授权将 PDF 转换为图像

Imagemagick在将pdf转换为图像时删除上部内容

ImageMagick:将图像转换为 A4 页面大小的 PDF,图像适合页面

使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘

ImageMagick:将PDF转换为图像

在 Imagemagick 中转换图像时出错