如何在ghostscript中将svg、eps和ai转换为png

Posted

技术标签:

【中文标题】如何在ghostscript中将svg、eps和ai转换为png【英文标题】:How to covert svg, eps and ai to png in ghostscript 【发布时间】:2017-10-13 04:21:46 【问题描述】:

我必须将 svg、eps 和 ai 文件转换为 png 以显示缩略图。以下命令支持 ai 和 eps,但不适用于 svg。有什么方法可以使用相同的命令将这些文件格式转换为 png。

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dDEVICEWIDTHPOINTS=1440 -dDEVICEHEIGHTPOINTS=960 -r300 -dGraphicsAlphaBits=4 -sOutputFile=outputfile.jpeg inputfile.eps

【问题讨论】:

使用imagemagick 及其convert 实用程序 感谢您的快速回复。 “imagemagick”和“convert”比 ghostscript 使用更多的内存和处理器。当我们转换多个文件时“imagemagick”或“convert”不能使用 您可以在 shell 脚本中使用一些 for 循环来多次运行 convert BTW ghostscript 是 PostScript 解释器。它不适用于处理 SVG 文件。请编辑您的问题不要评论它。您是否需要将 ghostscript 用于它不适合的任务,或者您是否需要将 .svg 文件转换为 .png 文件?不一样,你应该改进你的问题 您好像问错了问题。它应该是“将 SVG 转换为 PNG 的最佳方法是什么”,但这些问题在 SO 上是题外话,所以你需要在其他地方问他们。 【参考方案1】:

您应该使用ImageMagick 及其convert 实用程序或找到其他一些SVG 到PNG 转换器(也许inkscape 使用with --export-png=文件 --without-gui ),另请参阅this,甚至花一年时间研究 SVG 和 PNG 格式并编写自己的转换器。

ghostscript 是 PostScript 解释器。它可以处理.eps(这是针对Encapsulated PostScript)文件,因为它们是PostScript 的一些变体。由于PDF与PostScript相关,您可以要求gs输出PDF。但是SVG与PostScript完全无关,所以gs不能处理.svg文件!

您不能使用gs 转换 SVG 文件。

(学究式地,PostScript 是一种Turing complete 编程语言并具有File IO 原语,所以理论上你可以花几年时间在 PostScript 中编写自己的 SVG 到 PNG 转换器和使用gs运行它。你不想这样做)

【讨论】:

我们不能将 svg 转换为 pdf 并将 pdf 转换为 png 使用“gs” 但是如何将 SVG 转换为 PDF?可能也在使用 ImageMagick! 我不认为 Ghostscript 处理 SVG 文件。为此,您需要 Inkscape 或 RSVG。但那些可能不输出 PDF,可能只输出光栅格式。 我确实使用inkscape 来获得.pdf 输出

以上是关于如何在ghostscript中将svg、eps和ai转换为png的主要内容,如果未能解决你的问题,请参考以下文章

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

如何告诉 Ghostscript 在从 eps 到 tiff 的转换中不要使用剪切路径?

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

Ghostscript将多个eps文件连接成一个大eps文件

Ghostscript - EPS(带有透明背景的嵌入式 TIFF)到 PNG 转换

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