如何在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文件