我想在大图像上绘制多边形/折线。
所以,我正在从 PIL/opencv 迁移到 pyvips。最近,我遇到了 loadsvg_buffer
方法,它实际上可以在不使用 draw_mask
和 draw_image
方法的情况下完成此操作。
有人能给我一个使用 loadsvg_buffer
或 draw_mask
或 draw_image
的填充示例吗?该文档没有多大帮助。
另外,如果我必须绘制多条折线怎么办?
欢迎任何其他见解。
最佳答案
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 加载器速度非常快,可以制作任何大小的图像。它逐步渲染,因此也不需要太多内存。
使用 bool 运算符用结果掩盖其他图像,或使用composite
将图像与 PDF 混合模式一起分层。
关于polygon - 使用 pyvips 绘制多条折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168846/