改进我的 ghostscript eps 压缩脚本

improving my ghostscript eps compressive script

我想得到一些帮助来改进使用 ghostscript 的 .eps 文件的压缩。

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

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

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

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

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

您的命令行 什么都不做 我希望这会导致文件大小减小。

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

将分辨率设置为 72 通常没有任何作用,因为 eps2write(和相关的设备系列)努力保持输入的设备和分辨率无关的性质。唯一一次使用分辨率是当输入使用一些无法在输出中再现的图元,并且图元被渲染为图像时。如果发生这种情况,我想您会被极低的分辨率结果吓坏的。

如果您想生成一个以质量换取文件大小的新文件,那么您需要查看 documentation.

中描述的各种选项

有些东西 可能会 以牺牲质量为代价来减小文件大小,尤其是图像下采样参数。由您决定您准备用多少质量来换取文件大小,因此您必须决定将这些参数设置为什么级别。

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

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

这个命令对我有用:

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

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