我正在使用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%的空间。
答案 0 :(得分:4)
添加我对#ghostscript IRC频道的评论;
首先,使用二进制代替Hex,除非你有充分的理由想要使用Hex。这将使字节数减少50%。
要做的第二件事是压缩数据(例如Flate)并在读取代码中添加FlateDecode过滤器。这将进一步减小尺寸,当然还要取决于数据的可压缩性。
除此之外,图像数据很大,没有真正的方法。