有没有办法转换SVG文件到png在 Windows 10 64 位上使用 ffmpeg?
我显然尝试了 ffmpeg -i“file.svg”“file.png”,但它默认不起作用。
也许有什么办法可以让它工作?找不到任何适用于 win10 的东西。
用户可以使用什么工具--enable-librsvg
来做?有命令吗?还是必须下载某些东西?
编辑:
如果没有 ffmpeg,任何可以在 win10 上运行的东西都受到欢迎,只要我可以一次转换大量 svg 文件。
答案1
最好的选择是使用 Inkscape 的命令行模式:
"C:\Program Files\Inkscape\bin\inkscape.exe" -o compass.png -w 1440 compass.svg
完整手册页在这里:
https://inkscape.org/doc/inkscape-man.html
据我所知,要一次处理多张图片,需要将其包装在批处理文件中的循环中。可能是这样的:
FOR %%I in (*.svg) DO "C:\Program Files\Inkscape\bin\inkscape.exe" -o %%~nI.png -w 1440 %%I
编辑:
您还可以使用 Inkscape 的 --shell 模式:
输入文件(我们称之为 input.txt)应该看起来像这样:
file-open:0001.svg;export-filename:0001.png;export-do;file-close;
file-open:0002.svg;export-filename:0002.png;export-do;file-close;
file-open:0003.svg;export-filename:0003.png;export-do;file-close;
file-open:0004.svg;export-filename:0004.png;export-do;file-close;
quit-inkscape;
把您想要的输入和输出文件放入其中(虽然我发现一次最多只能放入 300 个文件,因为有时它会挂起)。SVG 文件必须已经存在,并且会创建 PNG 文件。
你可以像这样运行它:
cd /path/to/folder/with/svgs
cat input.txt | inkscape --shell
或者,对于 Windows:
cd C:\path\to\folder\with\svgs
type input.txt | inkscape.exe --shell
我最终将其放入 Python 模块中。单线程版本:
https://github.com/clawsoon/chromosome_movie/blob/master/chromosome_movie/svg2png_basic.py
多线程版本并行运行多个 Inkscape 实例,以便利用多个核心,因为 Inkscape 本身似乎仅限于单个核心:
https://github.com/clawsoon/chromosome_movie/blob/master/chromosome_movie/svg2png.py
我使用这个 Python 模块为这个视频系列处理了近一百万个 SVG:
https://www.youtube.com/watch?v=YbYzvS45vYI&list=PL0elTBjXjW_7oDLwWQCaDxKPSzCus5fAB