如何解决Inkscape 命令行转换文件列表
我在 Powershell 中使用 Windows 批处理脚本将文件夹中所有编号的 .svg 文件转换为 .png,在命令行上使用 Inkscape,基于对上一个问题 here 的回答。
child: Padding(
padding: EdgeInsets.only(
top: 8,bottom: 8,right: MediaQuery.of(context).size.width / 30),// -> error
child: Image.asset('assets/images/person.png'),),
脚本为每个文件再次调用 Inkscape,我怀疑这是主要的速度瓶颈(我有很多文件要转换)。我更愿意调用 Inkscape 一次并提供要转换的文件列表。
是否可以使用 @echo off
for %%i in ("%~dp0*.svg") do (
echo %%i to %%~ni.png
"C:\Program Files\Inkscape\bin\inkscape.com" --export-type="png" --export-background-opacity=1.0 "%%i"
)
模式来执行此操作?我找不到使用这种方法的示例。
解决方法
我发现的一种方法是使用交互式 --shell
模式,其中包含一系列“动作”和“动词”,例如:
inkscape --shell
> file-open:file001.svg;export-filename:file001.png;export-do; file-open:file002.svg;export-filename:file002.png;export-do;
您可以生成一长串这些动作和动词序列,每个文件一个。它工作得很好,但不幸的是,我无法为我想要转换的数千个 SVG 文件粘贴足够大的文本字符串。我认为 Powershell 受到您可以粘贴到其中的文本数量的限制,as is the usual command prompt。
因此,如果 Inkscape 的未来版本接受包含此类命令列表的批处理文件,那就太好了。目前,据我所知,这似乎不可能。
,根据您自己的回答,我创建了一个名为 inkscape.cmd
的 10,000 行文件,如下所示:
inkscape-version
inkscape-version
inkscape-version
...
...
并运行它:
inkscape --shell < inkscape.cmd
我只在 macOS 上测试过,因为我没有 Windows。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。