HTML5 canvas PIL源-顶部-替代方法

2024-05-12 22:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到正确的功能来添加颜色叠加在另一个图像时,透明区域应该保持不变。你知道吗

例如,在源图像上有一个半透明的白色圆圈,它周围的一切都是完全透明的。当我用红色进行操作时,我希望得到一个白色/红色的圆,周围有完全透明的区域。你知道吗

在HTML5画布上,可以通过以下方式实现:

layerContext.globalCompositeOperation = "source-atop";
layerContext.fillStyle = color;
layerContext.fillRect(0, 0, w, h);

我尝试了alpha_compositeblendcomposite函数,但可能误用了它们。你知道吗

编辑:以下是我使用的内容:

overlay = Image.new('RGB', im1.size, (255, 0, 0))
im1.paste(overlay, mask=im1)

画布:Canvas result 皮尔:PIL result

PIL的结果是有点轻,但颜色是一样的。有什么想法吗?你知道吗


Tags: 图像功能区域颜色画布方式html5红色