使用 ImageMagick/GhostScript 将 PDF 转换为 PNG:Colorspace=sRGB 破坏脚本

使用 ImageMagick/GhostScript 将 PDF 转换为 PNG:Colorspace=sRGB 破坏脚本

为了将 100 页的 PDF 转换为单个 PNG 文件,我一直使用以下命令:

C:\Program files\ImageMagick\convert -density 150 -alpha Opaque file.pdf file.png

但这会导致 PNG 图像过饱和。因此我将命令修改为以下命令,并添加参数colorspace

C:\Program files\ImageMagick\convert -colorspace sRGB -density 150 -alpha Opaque file.pdf file.png

现在颜色看起来不错。但是,现在只转换了 PDF 的第一页,其他页面都被删除了。为什么?参数的顺序错了吗?我测试了不同的顺序,但都没有成功。

但是,直接访问后续页面(通过file.pdf[1]等)是可行的。但为什么它不再批量转换整个文档了?

ImageMagick 版本信息:

Version: ImageMagick 6.8.1-9 2013-01-04 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: OpenMP
Delegates: bzlib freetype jp2 jpeg lcms lzma ps tiff x xml zlib

答案1

我使用了以下小解决方法来解决问题,但显然我不喜欢它:

for /L %%p in (1,1,100) do C:\ImageMagick\convert -colorspace sRGB -density 150 -alpha Opaque file.pdf[%%p] file-%%p.png

编辑:还有一个更好的解决方案:

  1. 在 ImageMagick 的delegates.xml部分中,将其<delegate decode="ps:alpha"替换sDEVICE=pngalphasDEVICE=pnmraw
  2. 使用C:\ImageMagick\convert -colorspace sRGB -density 150 -alpha off file.pdf file.png

相关内容