Postscript 中的高效图像表示

Efficient image representation in Postscript

我正在使用 colorimage 命令将 PWG 光栅文件(大小以 KB 为单位)转换为 Postscript。光栅文件数据在 PS 文件中表示为十六进制。问题是,生成的 PS 文件大小约为 500 MB。我想要一种方法,可以在不影响输出质量的情况下显着减小这些 PS 文件的大小。 我在下面给出的示例文件:

%!PS-Adobe-3.0
%%BoundingBox: 0 0 4958 7017
%Creator: Cups-Filters
%LanguageLevel: 2
%DocumentData: Clean7Bit
%EndComments
%BeginProlog
%EndProlog

%Pages: (atend)
%%Page: 1 1
%%BeginPageSetup
<< /PageSize[4958 7017] >> setpagedevice
%%EndPageSetup
gsave
gsave
4958 7017 scale
4958 7017 16 [4958 0 0 -7017 0 7017]
{currentfile 4958 string readhexstring pop} bind
false 4 colorimage

...hexadecimal information cut...

grestore
showpage
%PageTrailer
%Trailer
%%Pages: 1
%EOF

以上文件是光栅文件的PS 表示,具有 CMYK 颜色模型,每种颜色 16 位。光栅文件的大小为 278.5 KB,而上述文件为 563.8 MB,其中 99% space 被十六进制数据占用。

添加到我在#ghostscript IRC 频道的评论中;

首先是使用二进制而不是十六进制,除非你有充分的理由想要使用十六进制。这将减少 50% 的字节数。

第二件事是压缩数据(例如Flate)并在阅读代码中添加FlateDecode过滤器。这将进一步减少大小,当然,多少取决于数据的可压缩性。

除此之外,嗯,图像数据很大,没有真正的解决办法。