改进我的 ghostscript eps 压缩脚本

Posted

技术标签:

【中文标题】改进我的 ghostscript eps 压缩脚本【英文标题】:improving my ghostscript eps compressive script 【发布时间】:2017-03-28 20:11:17 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

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

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

【讨论】:

【参考方案2】:

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

这个命令对我有用:

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

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

【讨论】:

以上是关于改进我的 ghostscript eps 压缩脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 .bat 文件中使用 ghostscript 压缩 PDF - 缺少文本

Ghostscript:将非常小的 eps 升级为大 jpg

通过 ImageMagick 或 GhostScript 命令行旋转 .EPS 文件

如何使用 ghostscript 调整 .eps 文件的大小

如何告诉 ghostscript 不要光栅化 eps 文件中的渐变?

Ghostscript:将 EPS 转换为 PNG 时,有时质量会失败