将 SVG 图像批量转换为所需大小的 PNG 或 ICO

将 SVG 图像批量转换为所需大小的 PNG 或 ICO

我有许多 SVG 图标,我想将它们用于在 VB.Net 2010 中开发的应用程序,但由于它不支持处理 SVG 图标,因此我需要将这些图标转换为 PNG 或 ICO,并使用首选的输出分辨率。我找到了一种适用于 Ubuntu 的命令行工具,名为rsvgconvert。我们也有适用于 Windows 的此类工具吗??

答案1

图像魔术师有一个命令行工具,可用于 Linux 和 Windows(以及其他操作系统)。转换工具被方便地称为“转换”。以下是一些使用文档

在这里你可以得到一个Windows 安装程序

答案2

ImageMagick 不应立即与任何涉及图像的批处理任务相关联。尤其是在这种情况下,ImageMagick 是 SVG 转换的糟糕解决方案。

最好尝试Inkscape在命令行上:

inkscape in.svg --export-type=png --export-filename=out.png

答案3

命令行无法立即使用,而且我想要转换 100 个文件。以下是我在 Windows 7 上使它工作的方法:

  1. 安装墨景- 不是便携式的!

  2. 将所有 svg 文件复制到一个文件夹中,例如“C:\svgs\”:

  3. 你创建一个convert.bat文件,其中包含以下行:

    FOR %%A IN (*.svg) DO "C:\Program Files (x86)\Inkscape\inkscape.exe" --export-png=%%A.png
    

    (指向您安装的正确文件夹):

  4. 以管理员身份打开 CMD!为此,请按 WIN 键,键入 cmd,右键单击“cmd.exe”并选择“以管理员身份运行”。

  5. 导航到“C:\svgs\”并输入convert.bat ——所有 svg 文件都将转换为 PNG。

  6. 使用 Windows 资源管理器搜索已转换的 PNG 文件。在我的 PC 上,它们位于以下文件夹中:C:\Users\myname\AppData\Local\VirtualStore\Program Files (x86)\Inkscape\svgs

希望有所帮助。


由于命令行的分辨率只能设置为固定的,所以我最终使用了InkscapeBatch 工具。我可以在那里设置 DPI 来相对增加所有图像。

您需要指定正确的设置,否则它将无法工作。以下是我所做的:

在此处输入图片描述

在此处输入图片描述

点击“完成后”,您需要按工具栏中的“启动批量转换器...”按钮:

在此处输入图片描述

答案4

这里给出的大多数答案都忽略了达到所需尺寸convert问题的一部分。当“升级” SVG 时,我无法获得令人满意的结果。inkscape做得更好,并且还保留了背景透明度。

根据您的使用情况,使用以下选项之一:

  1. 以指定的 DPI 导出:inscape in.svg -d 300 -e out.png
  2. 以指定宽度导出(保持纵横比):inscape in.svg -w 800 -e output.png
  3. 以指定高度导出(保持纵横比):inscape in.svg -h 600 -e output.png

请注意,同时指定宽度和高度不是保留纵横比。

要一次转换多个文件,请根据您的使用情况(bash或兼容)调整以下内容:

for f in *.svg; do
  inkscape "$f" -d 300 -e "${f%.*}.png"
done

相关内容