对于svg格式转换成png格式,我们需通过Inkspace
可以一张张转换,如果需要进行批量转换,我们可以在使用cairosvg来实现这个功能。
CairoSVG简介:
Ubuntu 默认预装了Python,如果系统版本不是很老的话一般都满足Python的最低版本要求。
python3 -V
输出如下图: Pyhton 版本 3.10.6
sudo apt install cairosvg -y
在cmd中输入 cairosvg --h
来获取命令帮助
usage: cairosvg [-h] [-v] [-f {eps,pdf,png,ps,svg}] [-d DPI] [-W WIDTH]
[-H HEIGHT] [-s SCALE] [-b COLOR] [-n] [-i] [-u]
[--output-width OUTPUT_WIDTH] [--output-height OUTPUT_HEIGHT]
[-o OUTPUT]
input
Convert SVG files to other formats
positional arguments:
input input filename or URL
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-f {eps,pdf,png,ps,svg}, --format {eps,pdf,png,ps,svg}
output format
-d DPI, --dpi DPI ratio between 1 inch and 1 pixel
-W WIDTH, --width WIDTH
width of the parent container in pixels
-H HEIGHT, --height HEIGHT
height of the parent container in pixels
-s SCALE, --scale SCALE
output scaling factor
-b COLOR, --background COLOR
output background color
-n, --negate-colors replace every vector color with its complement
-i, --invert-images replace every raster pixel with its complementary
color
-u, --unsafe resolve XML entities and allow very large files
(WARNING: vulnerable to XXE attacks and various DoS)
--output-width OUTPUT_WIDTH
desired output width in pixels
--output-height OUTPUT_HEIGHT
desired output height in pixels
-o OUTPUT, --output OUTPUT
output filename
cairosvg filename.svg -o newfilename.png
执行命令后,目录下就立即生成了png格式的图片。
创建svg2png.py文件,将以下代码粘贴进去后保存
import cairosvg
import os
inputFolder = "/home/anan/Pictures/svg" #输入的文件夹,里面有svg
outputFolder = "/home/anan/Pictures/png" #输出的文件夹,将把结果放到此文件夹中,需要先创建好目录。
for root, dirs, files in os.walk(inputFolder):#遍历所有的文件
for f in files:
svgFile = os.path.join(root,f) #svg文件名
if f[-3:] == "svg":#确保是svg
pngFile = outputFolder + "/" + f.replace("svg","png") #png文件名
try:
cairosvg.svg2png(url=svgFile, write_to=pngFile, dpi=1900)
except:
print('error =>' + pngFile)
finally:
print('file => ' + pngFile)
python3 svg2png.py
执行命令后,我们进入png目录可以看到图片均已转换完成
注:png文件为透明背景的位图,只有 Fireworks 保存的 fw.png文件为矢量原图