改进我的 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 文件,请尝试 ColorImageResolution 和 DownsampleColorImages。
这个命令对我有用:
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 文件的大小