svg 转 png

方法一:

1.安装cairosvg

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

sudo apt install python3-lxml
sudo apt install python3-dev
sudo apt install libffi-dev
sudo apt install libcairo2

  pip3 install cairosvg

2.运行

在command-line:

$ cairosvg image.svg -o image.png

导入 python3 运行:

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

批量转换:

#!/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)

3.缺点

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

方法二:

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

convert test.svg test.png

2.批量转换图片

#!/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

 

你可能感兴趣的:(svg 转 png)