在将PDF转换为PNG时强制Ghostscript使用抗锯齿功能?

时间:2013-07-09 23:58:44

标签: pdf image-processing ghostscript antialiasing

我在OS X(10.8.4)上使用GPL Ghostscript 9.07(2013-02-14)将许多PDF转换为PNG。

除了其中一个变成带有锯齿状边缘的PNG之外,它工作正常。换句话说,Ghostscript出于某种原因关闭了针对该特定PDF的抗锯齿。

The PDF in question

输出:

enter image description here

在其他情况下,它可以正常工作(示例:pdf - > png)。

我使用这个命令:

gs -dNOPAUSE -dBATCH -dPDFFitPage -sDEVICE=pngalpha -g200x150 -sOutputFile=01.png 01.pdf

是否可以强制Ghostscript对该PDF使用抗锯齿?

任何提示都表示赞赏。

3 个答案:

答案 0 :(得分:6)

这对我有用:

gs -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r150  -sOutputFile=foo-%d.jpg foo.pdf

来源:ImageMagick convert pdf to jpeg has poor text quality after upgrading ImageMagick version to 6.7.8

上述内容适用于JPG;对于PNG,请替换-sDEVICE选项,例如:-sDEVICE=png16m

来源:http://ghostscript.com/doc/current/Devices.htm

答案 1 :(得分:2)

您可以尝试 -dDOINTERPOLATE ,它使用Mitchell过滤器功能来缩放每个输出像素的贡献

答案 2 :(得分:1)

您可以尝试使用值1,2或4的-dGraphicsAlphaBits =,它们可能有差异,也可能没有差异。它为我做了一些改进,但它是一个低分辨率的小图形,曲线笨拙,所以没有预期的那么多。

或者你可以使用一种更灵活的抗锯齿设备(例如tiffscaled)。 PNG输出没有消除锯齿的设备,但将TIFF转换为PNG将是微不足道的。

顺便说一句,您的PDF文件专门关闭了组件的抗锯齿:

8 0 obj
<</AntiAlias false/ColorSpace/DeviceCMYK/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 10 0 R/ShadingType 2>>

您可能想尝试看看如果将AntiAlias更改为true会发生什么,但我怀疑这会产生影响,因为我很确定aniti-aliasing应用于阴影的内部渲染,而不是edgses