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。
我无法终生弄清楚为什么它无法显示正确的图片。任何帮助将不胜感激。
如果您的目标是从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)