如何在 Linux 终端中将 SVG 转换为 PNG
SVG(可缩放矢量图形)文件通常用于徽标、图标和插图,因为它们可以调整大小而不会降低质量。
但是,有时您需要将 SVG 文件转换为 PNG(便携式网络图形)格式,以便更好地与网站或应用程序兼容。
在 Linux 中,有多种方法可以使用命令行工具和图形应用程序轻松完成此转换。
1.使用Inkscape
Inkscape 是一款功能强大的开源矢量图形编辑器,支持 SVG 格式,可以轻松用于将 SVG 文件转换为 PNG 格式。
如果您的系统上未安装 Inkscape,您可以根据您的 Linux 发行版使用以下命令进行安装:
sudo apt install inkscape [On Debian, Ubuntu and Mint]
sudo yum install inkscape [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/inkscape [On Gentoo Linux]
sudo apk add inkscape [On Alpine Linux]
sudo pacman -S inkscape [On Arch Linux]
sudo zypper install inkscape [On OpenSUSE]
sudo pkg install inkscape [On FreeBSD]
安装后,您可以使用以下命令将 SVG 文件转换为 PNG。
inkscape input.svg --export-type=png --export-filename=output.png --export-dpi=300
2.使用ImageMagick
ImageMagick 是一款多功能工具,可以在不同格式之间转换图像,包括从命令行将 SVG 转换为 PNG。
如果您的系统上未安装 ImageMagick,您可以根据您的 Linux 发行版使用以下命令进行安装:
sudo apt install imagemagick [On Debian, Ubuntu and Mint]
sudo yum install ImageMagick [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/imagemagick [On Gentoo Linux]
sudo apk add imagemagick [On Alpine Linux]
sudo pacman -S imagemagick [On Arch Linux]
sudo zypper install imagemagick [On OpenSUSE]
sudo pkg install imagemagick [On FreeBSD]
安装 ImageMagick 后,您可以通过运行以下命令将 SVG 文件转换为 PNG:
convert input.svg output.png
如果要为输出 PNG 文件设置自定义分辨率,请使用 -密度
选项。
convert -density 300 input.svg output.png
3.使用rsvg-convert(librsvg的一部分)
rsvg-convert 是一个命令行工具,是 librsvg 软件包的一部分,它是轻量级的,专门为转换 SVG 文件而设计。
如果您的系统上未安装 rsvg-convert:,您可以根据您的 Linux 发行版使用以下命令进行安装:
sudo apt install librsvg2-bin [On Debian, Ubuntu and Mint]
sudo yum install librsvg2-tools [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a gnome-base/librsvg [On Gentoo Linux]
sudo apk add librsvg [On Alpine Linux]
sudo pacman -S librsvg [On Arch Linux]
sudo zypper install librsvg2-tools [On OpenSUSE]
sudo pkg install librsvg2 [On FreeBSD]
安装rsvg-convert后,您可以通过运行以下命令将 SVG 文件转换为 PNG:
rsvg-convert -o output.png input.svg
您可以使用 -w
(宽度)或 -h
(高度)指定输出图像的宽度或高度:
rsvg-convert -w 800 -h 600 -o output.png input.svg
4. SVG 批量转换为 PNG
如果您有多个 SVG 文件并希望将它们一次性全部转换为 PNG,您可以使用简单的 shell 循环。
使用 Inkscape:
for file in *.svg; do
inkscape "$file" --export-type=png --export-filename="${file%.svg}.png"
done
使用ImageMagick:
for file in *.svg; do
convert "$file" "${file%.svg}.png"
done
此循环会将当前目录中的所有 .svg
文件转换为 .png
。
结论
在 Linux 中将 SVG 转换为 PNG 是一项简单的任务,可以使用各种工具来完成。无论您是喜欢 Inkscape 这样的图形工具、ImageMagick 的灵活性,还是像 rsvg-convert 这样的快速命令行工具,Linux 都提供了多种工具进行这种转换的简单方法。