改进我的ghostscript eps压缩脚本

时间:2017-03-28 20:11:17

标签: matlab compression ghostscript eps

我想帮助改进使用ghostscript压缩.eps文件。

到目前为止,我使用了函数eps2write:

-sDEVICE=eps2write -r72 -dLanguageLevel=1 -sOutputFile="%HOMEDRIVE%%HOMEPATH%\Desktop\cleaned.eps" -dNOPAUSE -dEPSCrop %1 -c quit pause

如果我使用从Matlab获得的18Mo文件,则将其压缩到13Mo。不幸的是,它仍然太大而无法在Illustrator中打开。 任何提示都会非常受欢迎。

2 个答案:

答案 0 :(得分:1)

首先,你不是'压缩'你的EPS程序,你正在创建一个全新的EPS程序,在视觉上应该是相同的。它是一个微妙的区别,但它很重要。记录在案here

如果没有看到你的EPS程序,就不可能知道为什么它如此大,可能是它包含一个大的位图图像,但可能还有其他原因。不知道为什么文件很大,以及你准备接受什么样的质量妥协,就不可能提出减少文件的建议。

您的命令行执行 nothing ,我希望这会减少文件大小。

设置LanguageLevel = 1不执行任何操作,因为您正在使用始终写入2级输出的eps2write。如果它确实做了任何事情,它可能会使文件更大,因为所有语言2级结构都必须使用2级运算符重写。

将分辨率设置为72通常不会做任何事情,因为eps2write(和相关的设备系列)努力保留设备和输入的分辨率无关性。使用分辨率的时间是输入使用一些无法在输出中再现的图元,并且图元被渲染成图像。如果发生这种情况,我认为你会因极低的分辨率结果而感到震惊。

如果您想生成一个换档文件大小的新文件,那么您需要查看documentation中描述的各种选项。

有些事情可能减少文件大小,但代价是质量,特别是图像下采样参数。由您来决定您准备交换文件大小的质量,因此您必须决定将这些参数设置为什么级别。

程序完全可能非常复杂(例如很多长路径)并且不能显着减少。如果要修改内容,请返回Matlab,修改文档并重新创建EPS文件,PostScript不能用作可编辑的容器格式,而Illustrator不能用作图形PostScript编辑器。

答案 1 :(得分:0)

如果要压缩包含图像的eps文件,请尝试 ColorImageResolution DownsampleColorImages

此命令对我有用:

gs -o outputfile.eps -sDEVICE=eps2write -dDownsampleColorImages=true -dColorImageResolution=300 inputfile.eps

根据需要调整dColorImageResolution = <resolution>。 300足以打印文档。