我正在使用 svgwrite 创建一个 SVG 图像,然后可以使用 cairosvg 将其保存为支持的多种格式(svg、pdf、png、ps)。在此示例中,我正在使用 PyQrcode 创建一个 qrcode,并将其编码为 base64 字符串并作为图像 (Drawing.image(...) 嵌入到 svg 文档中。当生成的 SVG 文件按原样保存时,生成的 SVG 是完美的. 当使用 CairoSVG 保存相同的 SVG 绘图时,它会损坏图像。直接绘制的其他元素(如红色矩形)被正确转换。
SVG的源代码在这里
使用 Cairosvg 保存 - svg2svg(...)
cairosvg.svg2svg(bytestring=byte_string, write_to=write_path, dpi=resolution, parent_width=width, parent_height=height, output_width=width, output_height=height)
此处提供 SVG 的源代码。
将感谢我身边的任何指示或可能的错误(或只是 cairosvg 中的缺陷)。