在Imagemagick中转换图像时出错

use*_*440 5 pdf imagemagick image-processing file-conversion

我使用Imagemagick转换将pdf文件转换为png,如下所示:

Magick convert -density 300 PointOnLine.pdf -quality 90 PointOnLine.png
Run Code Online (Sandbox Code Playgroud)

它给了我以下警告:

convert: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG `PointOnLine.png' @ warning/png.c/MagickPNGWarningHandler/1744.
Run Code Online (Sandbox Code Playgroud)

并且创建的png图像全黑.但是,转换为jpg图像很好.

更新:添加-define配置文件后:skip = ICC,图像仍然很暗.但如果转换为jpg然后转换为png,则可以,但背景很暗.仍有同样的警告.问题是什么?谢谢.

fmw*_*w42 4

以下内容适用于 ImageMagick 7.0.7.22 Q16 Mac OSX Sierra,使用 Ghostscript 9.21 和 libpng @1.6.34_0,没有错误。您的 PDF 有一个 Alpha 通道,因此您可能需要将其展平。

magick -density 300 PointOnLine.pdf -flatten -quality 90 result.png
Run Code Online (Sandbox Code Playgroud)

这也可以正常工作,不会出现错误,但会在 png 中留下 alpha 通道,尽管在提取图像之前您不会在此处看到它:

magick -density 300 PointOnLine.pdf -quality 90 result2.png
Run Code Online (Sandbox Code Playgroud)

请注意,在 IM 7 中,您应该只使用 magick 而不是 magick Convert。

如果没有得到相同的结果,请检查您是否使用的是最新版本的 Ghostscript 和 libpng。

PS:alpha 的 delegates.xml 文件应显示 sDEVICE=pngalpha 而不是 pnmraw,如下所示。

<delegate decode="ps:alpha" stealth="True" command="&quot;gs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pngalpha&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;"/>

用户要求删除我发布的结果图像!