python如何将svg图标转换成png图片?
网友回复
在 Python 中将 SVG 图标转换为 PNG 图片,有多种方法,主要区别在于对系统依赖的要求和转换质量。下面按推荐程度介绍几种常用方案。
1. 使用 CairoSVG(推荐,纯 Python 调用 Cairo 库)
CairoSVG 是最常用的库,转换质量高,支持透明背景,可控制输出尺寸。
安装
pip install cairosvg
注意:CairoSVG 依赖系统的 Cairo 库。Windows 下通常需要额外安装 GTK 或下载 Cairo 的 DLL,最简单的方法是安装 pycairo 的预编译包,如 pip install pycairo‑‑only-binary=pycairo 或使用 conda:conda install -c conda-forge cairosvg。macOS 可用 brew install cairo,Linux 用 apt install libcairo2-dev。
示例代码
import cairosvg
# 从文件转换
cairosvg.svg2png(url="icon.svg", write_to="icon.png")
# 从字符串转换,控制输出尺寸(保持比例)
svg_str = '''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="blue"/>
</svg>'''
cairosvg.svg2png(bytestring=svg_str.encode(), write_to="icon2.png",
output_width=512, output_height=512)点击查看剩余70%


