批量导出意味着我可能需要添加某些转换,例如抗锯齿、对比度修复和调整大小。这里的 SVG 意味着我正在使用 Inkscape。这里的一层是精灵。我目前将每个图层单独导出到位图,File > Export Bitmap
但它很耗时。
有没有办法以编程方式从 SVG 文件批量导出图层?
或者 Inkscape 中是否存在一些批量导出按钮?
我特别需要为每个精灵使用相同的自定义区域,就像单击多次菜单一样,但这很愚蠢——也许是一些宏?
批量导出意味着我可能需要添加某些转换,例如抗锯齿、对比度修复和调整大小。这里的 SVG 意味着我正在使用 Inkscape。这里的一层是精灵。我目前将每个图层单独导出到位图,File > Export Bitmap
但它很耗时。
有没有办法以编程方式从 SVG 文件批量导出图层?
或者 Inkscape 中是否存在一些批量导出按钮?
我特别需要为每个精灵使用相同的自定义区域,就像单击多次菜单一样,但这很愚蠢——也许是一些宏?
您可以使用命令行导出所有图层。首先,看看我们有多少层或哪些层,用--query-all
or -S
:
$ inkscape --query-all presentation.svg | grep layer | awk -F, '{print $1}'
layer1
layer2
layer3
使用图层的 id(exakt 名称),您现在可以使用--export-id=ID
or-i
和-j, --export-id-only
$ inkscape presentation.svg -i layer1 -j -C --export-png=layer1.png
-C, --export-area-page
定义导出区域(整页,在文档属性中定义)。您也可以使用--export-ps
,--export-pdf
和--export-eps
其他一些。
要使其自动化,您可以生成一个命令列表:
$ for id in `seq 1 15`; do echo "presentation.svg -jC -i layer$id -e layer$id.png"; done
presentation.svg -jC -i layer1 -e layer1.png
presentation.svg -jC -i layer2 -e layer2.png
presentation.svg -jC -i layer3 -e layer3.png
当您将其保存在文件中(此处commands.txt
)时,您可以像这样调用inkscape:
$ inkscape --shell < commands.txt
执行所有列出的命令。
感谢 Freenode 的#inkscape 频道,用户su_.*
和verbalsh.*
. su_.*
提供了以下大部分想法。请注意,导出到栅格意味着信息丢失。此外,Inkscape 有anti-alias-always-on-in-exportation
-feature 和odd no-control-with-contrast-in-exportation
-feature 等奇怪的特征,意味着额外的信息损失。su_.* 在此上下文中提到:“始终抗锯齿,与画布上的渲染器相同”。
根据su_*
,“JessyInk 的作者对相关问题的较早回答”是在这里您将每个图层与一个公共背景图层一起导出(它定义了 bg 颜色或可能导出大小)。
相关功能请求
候选解决方案
JessyInk:“与 Inkscape 捆绑的扩展程序,用于创建基于图层的演示文稿,其中包括一种名为“JessInk zipped pdf or png putput ( .zip)”的输出格式(通过“保存”)*。它“可以选择每层使用 PDF 或 PNG 创建一个 zip 存档”。更多 在这里。
“[E]xport by id from the command line”,但存在一些问题,例如隐藏其他层的额外工作“如果精灵都在彼此之上”。将每个图层导出为 png 的示例 shell 脚本。
“[D] 在命令行上定义导出区域”,更多信息请点击此处。
【新奇想法】 “又一个外部扩展(专门用来制作动画)也可以将每一层批量导出为位图”,更多 看这里。
参考
关于导出的 Inkscape 手册在这里。
命令行 - 使用说明,带有
$ inkscape --usage
.
好吧,很抱歉恢复了一个解决方案已被接受的线程。
我遇到了同样的“批量图层导出”问题,除了我想一起导出图层组,例如 LAYER0+LAYER1、LAYER0+LAYER2、LAYER1+LAYER2。JessyInk 和 Inkscape Launchpad 中的脚本文件都不适合我……
这是我阅读的第一个答案之一,它为我编写的自定义轻量级脚本提供了一些宝贵的链接,我现在与大家分享,希望它有用: https ://sites.google.com/site/ rameyarnaud/媒体/图像/inkscape-export-svg-layers-to-gif-animation
干杯!