这个问题可能已经在多个网站上得到了回答。但是,我在让它正常工作时遇到问题。
我的目标是使用命令行将 SVG 文件转换为 BMP。下面是一个简单的 SVG 文件的内容。请注意,分辨率必须为 912x1140 像素。因此,生成的 BMP 文件必须是 SVG 中定义的 912x1140 像素。
<?xml version="1.0" encoding="utf-8" ?>
<svg baseProfile="full" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" width="912px" height="1140px" preserveAspectRatio="none" viewBox="0,0,9.855,6.1614"><defs />
<rect fill="#FFF" height="100%" width="100%" x="0" y="0" />
<rect x="4" y="2.5" width="1.0" height="1.0" fill="#000" />
</svg>
当我使用 GUI 使用 GIMP 时,生成的 BMP 文件按预期正确,大小为 912x1140px。文件大小约为 3.96MB。但是,我必须使用 GUI 打开我的 SVG 文件并手动将其转换为 BMP。我更喜欢使用命令行,因为我有一批要转换的 SVG 文件。
当我使用 ImageMagick 进行转换时,生成的 BMP 文件会被调整为 855x1069px,而不是保持在 912x1140px。生成的 BMP 文件 ~3.48MB:convert myfile.svg myfile.bmp
当我使用 rsvg-convert 时,生成的 BMP 文件是正确的 912x1140,但大约是 7KB。我不确定 rsvg-convert 是否甚至支持 BMP 格式,因为根据文档,BMP 未列为支持格式。因此,这让我质疑转换的 BMP 文件是否正确。rsvg-convert -o myfile.bmp myfile.svg
当我使用命令行 Inkscape 时,生成的 BMP 文件的正确分辨率为 912x1140,但大小约为 6.51KB。我不确定这是否正确,因为使用 GIMP 生成的 BMP 文件导致文件大小为 3.96MB。其次,Inkscape GUI 没有任何导出到 BMP 的选项。此外,它默认为 32 位。我希望它是 24 位深度。inkscape -z myfile.svg -e myfile.bmp