Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PDF转换为PNG时强制Ghostscript使用抗锯齿?_Pdf_Image Processing_Ghostscript_Antialiasing - Fatal编程技术网

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

将PDF转换为PNG时强制Ghostscript使用抗锯齿?,pdf,image-processing,ghostscript,antialiasing,Pdf,Image Processing,Ghostscript,Antialiasing,我正在OSX(10.8.4)上使用GPL Ghostscript 9.07(2013-02-14)将许多PDF转换为PNG 它工作良好,除了其中一个PDF变成了锯齿状边缘的PNG。换句话说,Ghostscript出于某种原因关闭了特定PDF的抗锯齿功能 输出: 在其他情况下,它工作正常(示例:->) 我使用以下命令: gs -dNOPAUSE -dBATCH -dPDFFitPage -sDEVICE=pngalpha -g200x150 -sOutputFile=01.png 01.pdf

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

它工作良好,除了其中一个PDF变成了锯齿状边缘的PNG。换句话说,Ghostscript出于某种原因关闭了特定PDF的抗锯齿功能

输出:

在其他情况下,它工作正常(示例:->)

我使用以下命令:

gs -dNOPAUSE -dBATCH -dPDFFitPage -sDEVICE=pngalpha -g200x150 -sOutputFile=01.png 01.pdf
是否可以强制Ghostscript对该PDF使用抗锯齿


欢迎提供任何提示。

您可以尝试使用-dGraphicsAlphaBits=值1、2或4,这些值可能会产生差异,也可能不会产生差异。它对我来说有了一些改进,但它是一个低分辨率的小图形,带有一条笨拙的曲线,所以并不像预期的那么多

或者您可以使用一种更灵活的抗锯齿设备(例如TIFFSCALE)。没有用于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>>
80对象

您可能希望尝试看看如果将AntiAlias更改为true会发生什么,尽管我怀疑这是否会产生效果,因为我非常确定aniti别名应用于着色的内部渲染,不是边缘。

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

这对我很有用:

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
资料来源:

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


来源:

不幸的是,我没有看到任何更改,但感谢您的建议。-DDOImprote只影响图像,它不会影响着色字典,这是此文件使用的。1)当我将Antialias设置为true时没有更改(必须使用pdftk解压和压缩文件才能编辑它)。2) 对于-dGraphicsAlphaBits=4 3)Tiffscaled的锯齿状边缘没有更改-是的,生成的图像看起来是抗锯齿的,但是灰度和背景填充了白色而不是透明的(我想这是TIFF的限制)。还有PostScript和PDF。背景总是假定为不透明的白色,除非您在其中特别绘制了其他内容。在这些成像模型中,它从来都不是“透明的”。如果您阅读了Bugzilla中打开的bug的线程,您将看到为什么其他选项不起作用,您需要使用一个“缩放”设备。因此,我通过将PDF转换为SVG并使用RSVG(RSVG转换)将SVG转换为PNG解决了我的问题。问题是如何从PDF转换为PNG,不是JPEG。值得注意的是,在这里工作的是选项
-dTextAlphaBits=4
-dGraphicsAlphaBits=4
。根据您的情况,可能需要也可能不需要其他选项。
gs-dSAFER-dBATCH-dNOPAUSE-r300-sDEVICE=png16m-dTextAlphaBits=4-dGraphicsAlphaBits=4-sOutputFile=output.png input.pdf
就足够了