在 PyCairo 中,您可以使用另一个 Surface 的透明层来剪辑 Surface 吗?

In PyCairo, can you clip a Surface using another Surface's transparency layer?

所以我在这里进行了一些谷歌搜索并查看了较旧的线程,但我仍然不知道该怎么做。我已经看到了一些其他的方法来像 context.clip 方法那样用绘制的路径来剪辑表面,但是我还没有看到任何类似的方法用于两个表面。

我想要的是在由某些其他表面 C 的 alpha 层确定的位置将某些表面 A 绘制到某些表面 B。我是 PyCairo 的新手,所以非常感谢您的帮助:)

您正在寻找cairo_mask_surfacehttps://www.cairographics.org/manual/cairo-cairo-t.html#cairo-mask-surface

我不知道如何在 PyCairo 中访问它,但我猜 ctx.mask_surface(surf_c)