PNG 转 EPS 后文件大小大幅增加

29

我正在将一张图片从.png格式转为.eps格式,但这样会大幅增加文件大小。有人能解释一下原因,并提供防止文件过度增大的方法吗?

我正在使用Unix系统下的convert命令:convert image.png image.eps

感谢任何帮助!

5个回答

55

如果可能的话,请使用3级后置脚本。一般来说,3级将生成最小的文件。2级提供最佳兼容性,并且与JPEG图像配合使用效果很好(请参见http://electron.mit.edu/~gsteele/pdf/)。

convert fig.png eps3:fig.eps

当使用Miktex和texify(但不是pdf模式)时,您可以使用includegraphics包含生成的eps文件。 - Janosch
3
我遇到了这个错误:convert: unable to zip-compress image fig.eps @ error/compress.c/ZLIBEncodeImage/1280 - warship
3
@warship:我遇到了相同的错误,但在运行eps2时它起作用了。 - rottweiler
@warship,你解决了这个错误吗?我也遇到了。 - Nubcake
最终可行的答案!这个方法在Mac OS X上也适用于brew!这是所有答案中提供最小尺寸和良好分辨率的唯一答案。 - Sunfloro

13

convert 实际上会导致文件大小增加,因为它会将图形数据存储为未压缩的格式。可以通过手动使用 gimp 进行转换或者通过执行其他操作来实现更好的压缩和更小的文件大小。

convert image.png image.pdf
pdftops -eps image.pdf

例如,在我的情况下,使用这种方法可以生成一个大小为0.3 MB的eps文件,而不是直接使用convert file.png file.eps得到大小为5.2 MB的文件。


3
对我来说这个方法不起作用。将图像从659Kb(PNG)转换为750Kb(PDF),再到16.4Mb(EPS),甚至比直接使用“convert * .png to * .eps”得到的12.8Mb还要大。 - Gabriel
1
Gimp 对我来说运行良好。然而,如果你有很多文件,Gimp 将不如命令行解决方案那么容易。 - hadi
GIMP是唯一完美保留了我的图像细节的工具。 - abcd

8
将PNG文件(设计用于位图数据)转换为EPS文件(设计用于矢量数据)总是会导致更大的文件大小,因为EPS实际上只是在原始图像数据周围包装了一个EPS数据结构(它很可能不会以与PNG文件相同的有效方式存储数据)。
正确的解决方案是将位图存储为PNG格式,将矢量图形存储为EPS或SVG等格式。(即:针对所涉及的内容使用适当的文件格式,而不是试图强加毫无意义的“一刀切”方法。)

4
供未来参考,我使用了“convert -density 300 myfig.png myfig.pdf”(其中300是为了更好的质量),然后使用了“pdftops -eps myfig.pdf”。这个过程使我能够创建小于0.5MB大小且中等质量的*.eps图像(之前大约为3-4MB)。比直接使用转换过程稍微好一点。也许增加密度可以改善质量。 - Ana S. H.
@AnaS.H.提到的解决方案对我来说是这篇帖子中最好的。你应该把你的评论变成一个答案,Ana! - Gabriel

2

1
这种方式可以减小文件大小,但是质量太差以至于几乎没有用。如果想要更高的质量,必须增加“sample”参数,这样.eps图像最终的大小会和直接转换得到的一样大。 - Gabriel
完美!像魔法一样运行。 - Ekaba Bisong

1
可能的问题是您使用的 convert 应用程序不支持在 EPS 中嵌入 PNG。当使用正确配置的 Adobe Acrobat Professional 时,我从未遇到过文件大小意外增加的情况。但你应该首先正确配置 "PNG 到 PDF" 转换设置。然后您应该从 Acrobat 导出(或另存为)生成的 PDF 为 EPS。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接