1

我想在大图像上绘制多边形/折线。

所以,我正在从 PIL/opencv 迁移到 pyvips。最近,我遇到了loadsvg_buffer一种不用draw_maskand方法就可以做到的draw_image方法。

有人可以给我一个使用loadsvg_bufferor draw_maskor的填充示例吗draw_image?该文档没有太大帮助。

另外,如果我必须绘制多条折线怎么办?

欢迎任何其他见解。

4

1 回答 1

3

svgload 文档在这里:

https://libvips.github.io/libvips/API/current/VipsForeignSave.html#vips-svgload

您可以绘制任何 SVG 图形。例如:

import pyvips

x = pyvips.Image.svgload_buffer(b"""
    <svg viewBox="0 0 200 200">
      <circle r="100" cx="100" cy="100" fill="#900"/>
    </svg>
""")

x.write_to_file("x.png")

生成:

红圈

libvips SVG 加载器非常快,可以制作任何大小的图像。它是渐进式渲染的,因此也不需要太多内存。

使用布尔运算符用结果遮盖其他图像,或使用compositePDF 混合模式对图像进行分层。

于 2019-07-24T09:31:22.390 回答