2

我在Inkscape中绘制了一个图标,但现在想以编程方式对其进行更改(针对不同的图标状态稍微更改颜色)并将其转换为包含多个不同颜色图标的平铺 PNG 格式文件。我知道 Inkscape 的--export-png选项,但看不到让它更改图像和/或多次导出到组合图像的不同部分的方法。

是否有任何好的面向用户的工具来以编程方式摆弄图像,或者我是否必须深入研究 GD 甚至手动修改 SVG XML?

4

2 回答 2

3

尽管我不能 100% 确定它是否满足您对面向用户的要求,但我建议您查看www.imagemagick.org。我已经成功地使用它的“convert”实用程序将脚本从 svg 转换为 png 并添加自定义背景颜色。

于 2009-01-04T15:15:36.163 回答
0

我使用两组简单的工具来为网络漫画做到这一点:

  • 用于修改 SVG XML 的基本 Perl/PHP/Ruby 脚本(还有一个很棒的 Perl 库,但我发现我需要的基本更改不需要它)
  • 从命令行运行 Inkscape 本身以将 SVG 渲染为 PNG。Inkscape 的 SVG 渲染是迄今为止我发现的最好的。

注意:Inkscape 可以通过一些工作安装在网络服务器上,并且可以从 CGI(perl、php 等)调用,尽管它很慢(所以你应该缓存结果)。

从 SVG 文件目录的命令行调用它:

find -name "*svg" -exec inkscape -z --file={} \ 
    --export-png=$OUTPUT{}.png --export-width=640 --vacuum-defs \;
  • 查找所有 SVG 文件
  • 运行 Inkscape 渲染每个文件
  • 宽度限制为 640 像素
  • 清理 SVG 文件(在签入 svn/git 之前最好这样做)

您可能还对Batik感兴趣,这是一个用 Java 编写的 SVG 渲染引擎。它在服务器端运行良好,并且相当独立。

于 2009-08-18T16:28:41.473 回答