Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting 编程图形工具链_Scripting_Svg_Inkscape - Fatal编程技术网

Scripting 编程图形工具链

Scripting 编程图形工具链,scripting,svg,inkscape,Scripting,Svg,Inkscape,我在中绘制了一个图标,但现在希望通过编程对其进行更改(稍微更改不同图标状态的颜色),并将其转换为包含多个不同颜色图标的平铺PNG格式文件。我知道Inkscape的导出png选项,但看不到一种方法可以让它更改图像和/或多次导出到组合图像的不同部分 有没有好的面向用户的工具可以通过编程来摆弄图像,或者我必须深入研究GD,甚至手动修改SVG XML?尽管我不能100%确定它是否满足您对面向用户的要求,但我建议您看一看。我已经成功地使用了它的“convert”实用程序来编写从svg到png的脚本转换,以

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


有没有好的面向用户的工具可以通过编程来摆弄图像,或者我必须深入研究GD,甚至手动修改SVG XML?

尽管我不能100%确定它是否满足您对面向用户的要求,但我建议您看一看。我已经成功地使用了它的“convert”实用程序来编写从svg到png的脚本转换,以及添加自定义背景色。

我使用两套简单的工具来完成网络喜剧:

  • 修改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渲染每个文件
  • 宽度限制为640像素
  • SVG文件被清理(在签入svn/git之前做得很好)
您可能还对用Java编写的SVG渲染引擎感兴趣。它在服务器端运行良好,并且相当独立