我正在运行ghostscript 9.22,libpng 1.6.34和imagemagick 7.0.7-11 Q16
以下是复制问题的命令:
convert -density 400 icon.pdf -scale 1024x1024 ./appicon-1024x1024.png
以下是输入PDF的链接: https://www.pdf-archive.com/2017/12/06/icon/
有趣的是,关闭抗锯齿可以解决问题,但不适合我们的用例。
答案 0 :(得分:1)
我遇到了同样的问题,我认为Ghostscript 9.22就是问题所在。我可以直接运行Ghostscript来重现这个问题:
gs -dSTRICT -dDOINTERPOLATE -dNOPAUSE -dEPSCrop -dBATCH -sOutputFile=test.png -sDEVICE=pngalpha /path/to/broken.pdf
我还测试了Ghostscript 9.21,它按预期工作。
当imagemagick的convert
命令与+antialias
一起运行时,它会将不同的开关传递给ghostscript。
您可以使用-verbose
开关告诉imagemagick打印出用于调用gs
的整个命令:
$ convert -verbose test.pdf test.png
哪个收益率:
'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pamcmyk32' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r72x72' -g1728x1728 -dEPSCrop ...
设置抗锯齿标志:
$ convert -verbose +antialias test.pdf test-with-antialias-flag.png
给我们:
'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pamcmyk32' -dTextAlphaBits=1 -dGraphicsAlphaBits=1 '-r72x72' -g1728x1728 -dEPSCrop
那里设置了几个不同的开关。基于直接运行gs
的一些实验,我发现-dGraphicsAlphaBits
似乎是罪魁祸首。如果将其设置为大于1的值,则行将显示在输出中。
所以有一些潜在的解决方法:
-dGraphicsAlphaBits
为1。答案 1 :(得分:1)
将ghostscript更新到9.23版,然后重新安装imagemagick。
答案 2 :(得分:0)