Python SVG转换器创建空文件

And*_*doo 6 python cairo rsvg python-3.x python-3.6

我下面有一些代码,应该将SVG图像转换为PNG。它可以正常运行,但是会创建一个空白PNG文件,而不是与原始SVG具有相同图像的PNG文件。我确实发现这不是cairo的错误,而是与rsvg有关的更多错误,我在这里得到

import cairo
import rsvg

img = cairo.ImageSurface(cairo.FORMAT_ARGB32, 640,480)
ctx = cairo.Context(img)
handle= rsvghandler.Handle('example.svg')
handle.render_cairo(ctx)
img.write_to_png("svg.png")
Run Code Online (Sandbox Code Playgroud)

我正在Windows 10上使用Python 3.6。

我无法终生弄清楚为什么它无法显示正确的图片。任何帮助将不胜感激。

Gon*_*ica 5

如果您的目标是从SVG转换为PNG,则建议使用Wand,如以下脚本所示:

from wand.api import library
import wand.color
import wand.image

with wand.image.Image() as image:
    with wand.color.Color('transparent') as background_color:
        library.MagickSetBackgroundColor(image.wand, 
                                         background_color.resource) 
    image.read(blob=NAMEOFTHEFILE.read(), format="svg")
    png_image = image.make_blob("png32")

with open(NAMEOFTHENEWFILE, "wb") as out:
    out.write(png_image)
Run Code Online (Sandbox Code Playgroud)