Mik*_*ike 3 png postscript filter ghostscript
我正在尝试将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
Run Code Online (Sandbox Code Playgroud)
PostScript不直接支持PNG,它支持JPEG,这就是上面代码工作的原因.
如果要从PNG文件中读取图像数据,则需要打开文件,剥离标题,然后单独读取每个块从中解析数据.将位图数据写入中间文件可能是最容易的,但是完全可以编写流解码器来提供程序图像数据源所需的数据.
幸运的是,PostScript(某些级别为3级,大多数版本的级别2)确实支持Flate,因此您不必在PostScript中编写解压缩代码,您可以直接使用过滤器.
您需要指定一个颜色空间,具体取决于PNG是否使用调色板.
PostScript是一种编程语言,所以这一切都是可能的,需要经验丰富的PostScript程序员花几天的时间来编写和调试它.
注意!PostScript不支持透明度,因此您根本无法应用PNG文件中的Alpha通道.