栅格化 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 网站上的一些随机代码片段。