我正在尝试使用GhostScript将具有透明背景的嵌入式TIFF的EPS文件转换为PNG。我遇到的问题是TIFF图像的背景在PNG中变成白色。看起来如下:
从Adobe Illustrator导出时,它显示正确:
我当时在读,每股收益没有透明度,只有标记和未标记的区域。我想知道是否丢失了一个呼叫,该呼叫会通过Ghostscript创建类似于Illustrator的PNG?或者,是否还有其他选择不只是通过ImageMagick将白色替换为透明色?
我正在使用Windows并安装了Ghostscript 9.25。这是我尝试过的命令(许多命令之一):
-q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -sDEVICE=pngalpha -r300 -dEPSCrop NamePlatePNG.png NamePlate.eps
如果需要,我可以将EPS文件提供给您。任何帮助将不胜感激,谢谢!
更新: 这是EPS文件(希望此链接有效):
https://drive.google.com/open?id=1m4HHGLoPe0jdWkx1Oghe7ttiXPldZnJs
此外,我应该提到我上传的图像只是在图像编辑器中打开的PNG的屏幕截图。格仔部分确实是完全透明的Alpha通道。我试图轻松地凸显差异。
答案 0 :(得分:0)
您的文件看起来不透明,看起来像是被蒙版,可能带有模板蒙版,可能是色键。没有看到文件,我无法确定。
您是正确的,PostScript(因此也就是EPS)不支持透明性,但是它确实支持一些具有相似效果的功能。
颜色空间是无关紧要的,实际上,PostScript支持的唯一一种“透明性”在颜色空间为CMYK时有效,而在其RGB(当然不是sRGB,甚至不是PostScript颜色空间)时也不起作用。 ,则必须从CIEBasedABC制造它)
据我所见,您所使用的命令行是正确的,但正如我所说的,如果不看实际的EPS程序,我就知道不了。
[编辑] 因此,Ghostscript渲染是正确的,这就是EPS文件中的内容,那里没有任何类型的透明度。那么Illustrator如何制作透明的PNG?很好的答案是Illustrator没有使用EPS文件的PostScript部分。
在EPS文件中大约有1/3的方式,您会看到一行内容:
%AI9_PrivateDataBegin
其后是Adobe Illustrator文件格式。当AI读取文件时,它将找到该行,并丢弃文件的PostScript部分,并从以该注释开始的文件部分中读取内容的AI表示。
现在存储在某处的信息将表明内容的某些部分是透明的。尽管PostScript不能表示,但Illustrator的内部格式可以。因此,当您从Illustrator编写PNG文件时,它会知道该部分是透明的,并以此形式编写。
但是,Ghostscript受文件的PostScript部分约束,它无法读取Illustrator本机格式,因此使用白色背景呈现图像。
可以“复制”与Illustrator不同的EPS(可能是3级而不是2级,我注意到这是2级语言的EPS文件),它可以复制效果,但是从这里您可以得到,标准的PostScript解释器无法做任何事情,它将为您提供所需的结果。