gpt4 book ai didi

python - 如何使用 librsvg Python 绑定(bind)调整 svg 图像文件的大小

转载 作者:太空狗 更新时间:2023-10-30 02:14:27 25 4
gpt4 key购买 nike

当栅格化 svg 文件时,我希望能够为生成的 png 文件设置宽度和高度。使用以下代码,仅将 Canvas 设置为所需的宽度和高度,原始 svg 文件尺寸的实际图像内容呈现在 (500, 600) Canvas 的左上角。

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 canvas 大小相同?我试过了

svg.set_property('width', 500)
svg.set_property('height', 500)

但是得到了

TypeError: property 'width' is not writable

另外,关于 librsvg python 绑定(bind)的文档似乎极为罕见,只有 cairo 站点上的一些随机代码片段。

最佳答案

有一个resize function在 librsvg 中,但已弃用。

设置 scale matrix在开罗更改绘图的大小:

  • 在您的 cairo 上下文中设置比例转换矩阵
  • 使用 .render_cairo() 方法绘制 SVG
  • 将您的表面写入 PNG

关于python - 如何使用 librsvg Python 绑定(bind)调整 svg 图像文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com