Kus*_*hal 32 icons svg command-line conversion
我有一堆 SVG 图标,我想用于我在 VB.Net 2010 中开发的应用程序,由于它不支持处理 SVG 图标,我需要将这些图标转换为 PNG 或 ICO,首选输出分辨率。我发现了这样的 Ubuntu 命令行工具,名为rsvgconvert
. 我们是否也有适用于 Windows 的此类工具?
zet*_*tah 29
ImageMagick 不应立即关联到任何涉及图像的批处理任务。特别是在这种情况下,ImageMagick 是 SVG 转换的糟糕解决方案。
最好在命令行上尝试Inkscape:
inkscape in.svg --export-type=png --export-filename=out.png
Mat*_*Mat 12
ImageMagick有一个命令行工具,可用于 Linux 和 Windows(以及其他)。转换器工具被方便地称为“转换”。这是一些使用文档。
您可以在此处获取Windows 安装程序。
命令行无法立即使用,而且我想要转换 100 个文件。这是我如何使其与 Windows 7 一起使用:
安装inkscape - 不是便携式的!
将所有 svg 文件复制到一个文件夹中,例如“C:\svgs\”:
您创建一个convert.bat
包含此行的文件:
FOR %%A IN (*.svg) DO "C:\Program Files (x86)\Inkscape\inkscape.exe" --export-png=%%A.png
Run Code Online (Sandbox Code Playgroud)
(指向正确的安装文件夹):
以管理员身份打开 CMD!为此,请按 WIN 键,键入 cmd,右键单击“cmd.exe”并选择“以管理员身份运行”。
导航到您的“C:\svgs\”并键入convert.bat
-- 所有 svg 文件都将转换为 PNG。
使用 Windows 资源管理器搜索转换后的 PNG 文件。在我的电脑上,它们在文件夹中:C:\Users\myname\AppData\Local\VirtualStore\Program Files (x86)\Inkscape\svgs
希望有帮助。
由于命令行的分辨率只能在我所见的范围内设置为固定的,因此我最终使用了InkscapeBatch 工具。在那里我可以设置 DPI 以相对增加所有图像。
您需要指定正确的设置,否则它将不起作用。这是我所做的:
点击“完成”后,您需要按下工具栏中的“启动批量转换器...”按钮:
小智 6
对于 SVG 到 PNG 的转换,我发现 cairosvg ( https://cairosvg.org/ ) 的性能比 ImageMagick 好。在目录中的所有文件上安装和运行的步骤。
pip3 install cairosvg
Run Code Online (Sandbox Code Playgroud)
在包含 .svg 文件的目录中打开一个 python shell 并运行:
import os
for file in os.listdir('.'):
name = file.split('.svg')[0]
cairosvg.svg2png(url=name+'.svg',write_to=name+'.png')
Run Code Online (Sandbox Code Playgroud)
这也将确保您不会覆盖原始 .svg 文件,但会保持相同的名称。然后,您可以使用以下命令将所有 .png 文件移动到另一个目录:
$ mv *.png [new directory]
Run Code Online (Sandbox Code Playgroud)
这里给出的大多数答案都会忽略问题的所需大小部分。convert
当“升级”SVG 时,我无法获得令人满意的结果。inkscape
做得更好,并且还保留了背景透明度。
根据您的使用案例,使用以下选项之一:
inscape in.svg -d 300 -e out.png
inscape in.svg -w 800 -e output.png
inscape in.svg -h 600 -e output.png
请注意,指定宽度和高度不会保留纵横比。
要一次转换多个文件,请根据您的使用案例(在bash
或兼容)中调整以下内容:
for f in *.svg; do
inkscape "$f" -d 300 -e "${f%.*}.png"
done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51662 次 |
最近记录: |