如何使用Ghostscript导入Postscript中的png文件?

时间:2014-10-11 02:30:31

标签: filter png ghostscript postscript

我试图将png图像放在postscript文档上,以便使用Ghostscript(v 9.15)ps2pdf转换为pdf文件。我发现以下代码与jpg文件很好地配合,但我需要导入png文件。看起来我必须要一个不同的过滤器,但我找不到一个有效的过滤器。有没有人有解决方案?

239                     % number of pixels in the horizontal axis
67                      % number of pixels in the vertical axis
8                       % bits per color channel (1, 2, 4, or 8)
[239 0 0 -67 0 67]      % transform array... maps unit square to pixel [ w 0 0 -h 0 h ]
(My_Logo.jpg) (r) file  % see page 587 and page 77 for more details
/DCTDecode filter       % see page  589
false                   % pull channels from separate sources
3                       % 3 color channels (RGB)
colorimage              % see page 544 and page 288 for more detail

1 个答案:

答案 0 :(得分:5)

PostScript不直接支持PNG,它支持JPEG,这就是上面的代码可以工作的原因。

如果要从PNG文件中读取图像数据,则需要打开文件,剥离标题,然后单独读取每个块,从中解析数据。将位图数据写入中间文件可能最简单,但完全可以编写流解码器来提供程序图像数据源所需的数据。

幸运的是PostScript(某些级别为3级,大多数版本的2级)确实支持Flate,因此您不必在PostScript中编写解压缩代码,您可以直接使用过滤器。

您需要指定一个色彩空间,具体取决于PNG是否使用调色板。

PostScript是一种编程语言,所以这一切都是可能的,需要经验丰富的PostScript程序员花几天的时间来编写和调试它。我应该想。

请注意! PostScript不支持透明度,因此您根本无法应用PNG文件中的Alpha通道。