import cairosvg
# 输入和输出文件路径
input_image = 'input_image.png'
output_svg = 'output_image.svg'
# 将图像转换为 SVG
cairosvg.svg_from_png(input_image, write_to=output_svg)
第二种方法
from PIL import Image
import svgwrite
def convert_image_to_svg(input_image_path, output_svg_path):
# 打开图像
img = Image.open(input_image_path)
img = img.convert("RGBA") # 转换为 RGBA 格式
# 创建 SVG 文件
dwg = svgwrite.Drawing(output_svg_path, profile='tiny')
# 遍历每个像素并将其添加到 SVG
for y in range(img.height):
for x in range(img.width):
pixel = img.getpixel((x, y))
if pixel[3] > 0: # 只处理不透明像素
dwg.add(dwg.rect(insert=(x, y), size=(1, 1), fill=svgwrite.rgb(pixel[0], pixel[1], pixel[2], '%')))
dwg.save()
# 使用函数
convert_image_to_svg('input_image.png', 'output_image.svg')