在将SVG文件转换为栅格图像(如PNG)时,我想要设置输出图像的宽度和高度。使用以下代码后,只有画布被设置为所需的宽度和高度,而实际图像内容仍按照原始SVG文件的尺寸呈现在画布的左上角(500,600)处。
import cairo
import rsvg
WIDTH, HEIGHT = 500, 600
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT)
ctx = cairo.Context(surface)
svg = rsvg.Handle(file="test.svg")
svg.render_cairo(ctx)
surface.write_to_png("test.png")
我该怎么做才能让图像内容与cairo画布大小相同?我尝试过:
svg.set_property('width', 500)
svg.set_property('height', 500)
但是得到了
TypeError: property 'width' is not writable
另外,librsvg的Python绑定文档似乎非常罕见,cairo网站上只有一些随机的代码片段。