通过命令行(inkscape)更改svg文件中的颜色

时间:2013-11-26 22:05:36

标签: command-line svg inkscape

我有一个只有一种颜色的.svg文件。我想将此颜色更改为另一种颜色并通过命令行导出。 (我必须做大约100次,所以手工操作不起作用。)我现在使用Inkscape。 我可以使用此命令更改背景颜色并导出:

inkscape -f name.svt -e output_name.png -b #000080

但我找不到改变正常颜色的方法。 我找到了这个动词:

org.inkscape.color.replacecolor

但是我不知道,如何添加我想要使用的颜色,我读到的某个地方,我不能向变量添加变量,但在这种情况下如何使用这个动词?

提前谢谢。

2 个答案:

答案 0 :(得分:6)

这不是一个通用的解决方案,但由于SVG文件只是内部的XML,如果您的SVG文件足够简单,您可以通过简单的sed替换来逃脱。例如,以下内容将#000000(黑色)替换为#ffffff(白色):

sed -e "s/#000000/#ffffff/" input.svg >output.svg

这可能会或可能不足以满足您的需求。

答案 1 :(得分:-1)

虽然inkscape是一个强大的工具,但我认为你将有更多运气(控制)与xlst转换。这将允许您对xml文件执行任何操作,而不是将文件解析为svg图像并依赖于可用的API。你可以看看像xsltproc这样的工具。