svg转png格式

矢量图svg转化为png格式

方法一:

安装cairosvg

直接安装会出错,需要安装依赖:

1
2
3
4
sudo apt install python3-lxml
sudo apt install python3-dev
sudo apt install libffi-dev
sudo apt install libcairo2

pip3 install cairosvg

运行

在command-line:
$ cairosvg image.svg -o image.png
导入 python3 运行:

1
2
3
$ python3
>>> import cairosvg
>>> cairosvg.svg2pdf(url='image.svg', write_to='image.pdf')

批量转换:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/python3.5

import cairosvg
import os

filetype='test'
filepath='/data/sketch_rnn/svg/arron_sheep/'+filetype+'/'
targepath='/data/sketch_rnn/png/arron_sheep/'+filetype+'/'
if os.path.exists(targepath):
pass
else:
os.makedirs(targepath)
for i in range(1,7400):
print (i)
aa=cairosvg.svg2png(WIDTH=64,url=filepath+str(i)+'.svg',write_to=targepath+str(i)+'.png',dpi=250)
print (aa)

缺点

svg转化后的png跟原图一样大,不能改变大小,设置width和height等参数不管用。

方法二:

使用ubuntu系统的ImageMagick进行转化。

convert test.svg test.png

批量转换图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#源svg所在目录
sourcepath="tuberling_svg/"
#保存png目录
targetpath="tuberling_stroke_png/"
mkdir $targetpath
for dir in $(ls $sourcepath)
do
echo $dir
mkdir $targetpath$dir
for file in $(ls $sourcepath$dir)
do
#删除文件名后面的svg,用来获取文件名保存png。
temp=${file%.svg}
convert $sourcepath$dir"/"$temp".svg" $targetpath$dir"/"$temp".png"
done
done
Contents
  1. 1. 方法一:
    1. 1.1. 安装cairosvg
    2. 1.2. 运行
    3. 1.3. 缺点
  2. 2. 方法二:
    1. 2.1. 使用ubuntu系统的ImageMagick进行转化。
    2. 2.2. 批量转换图片
|