Skip to content

cairosvg安装配置与批量转换svg to png

Gitee这几天发现个问题,文章里引用的SVG图片全部解析不出来。不好看不舒服。需要把SVG图片全转换成PNG图片再上传。发现cairosvg可以做这个事,安装配置不是那么简单。

1. 安装cairosvg

conda里默认的channel里并没有cairosvg,后面发现conda-forge里有。

conda config --add channels conda-forge     # 添加conda-forge源
conda install cairosvg                      # 安装主包
conda install cairo                         # 安装库

2. 安装DLL依赖

3. 程序细节

程序很简单了,就是进入文件夹,迭代。把文件放入SVG文件夹同目录下,运行就OK了。

import cairosvg
from pathlib import Path


def Svg2Png():
    SrcDir = Path('.').resolve()
    SvgList = [svg for svg in SrcDir.iterdir() if svg.suffix == ".svg"]
    for svgFile in SvgList:
        pngFile = svgFile.with_suffix(".png")
        if not pngFile.is_file():
            cairosvg.svg2png(url=str(svgFile), write_to=str(pngFile), scale=3)


Svg2Png()

4. 批量替换文件后缀

post里搜索替换所有.svg.png