程序化图形工具链

时间:2009-01-04 15:10:30

标签: scripting svg inkscape

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

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

2 个答案:

答案 0 :(得分:3)

即使我不能100%确定它是否满足您的用户导向要求,我建议您查看www.imagemagick.org。我已成功使用其“转换”实用程序进行从svg到png的脚本转换以及添加自定义背景颜色。

答案 1 :(得分:0)

我使用两组简单的工具为webcomic执行此操作:

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

注意:Inkscape可以安装在一个有点工作的Web服务器上,可以从CGI(perl,php等)调用,虽然它很慢(所以你应该缓存结果)。

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

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

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