【问题标题】:Change color in svg file through command line (inkscape)通过命令行更改 svg 文件中的颜色(inkscape)
【发布时间】:2013-12-12 07:07:12
【问题描述】:

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

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

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

org.inkscape.color.replacecolor

但我不知道,如何在我阅读的某处添加我想使用的颜色,我无法将变量添加到动词,但在这种情况下,如何使用这个动词?

提前谢谢你。

【问题讨论】:

    标签: command-line svg inkscape


    【解决方案1】:

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

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

    这可能足以满足您的需求,也可能不够。

    【讨论】:

    • 很棒的把戏。如果它对任何人都有帮助,我会补充一点,这种方法可以将具有多种颜色的 svg 转换为单色。例如 sed -e "s/#....../#000000/" input.svg > output.svg 创建一个全黑的 svg。
    • 在没有颜色设置的情况下不起作用,就像互联网上的每个 svg 图标一样
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 2021-10-09
      • 2019-08-07
      • 2020-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多