我下面有一些代码,应该将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。
我无法终生弄清楚为什么它无法显示正确的图片。任何帮助将不胜感激。
我想做类似的事情:
import image
image.display_image('http://upload.wikimedia.org/wikipedia/commons/8/84/Example.svg')
Run Code Online (Sandbox Code Playgroud)
它会以图像的形式出现。
PS 我想要 PNG 或 JPEG,而不是 GIF。
我希望能够在 tkinter 中打开 SVG 文件。我现在使用的答案是将 SVG 转换为 PNG,然后在 tkinter 中显示它,但由于我想在不损失质量的情况下调整它的大小,所以我需要一个更好的答案。