当透明区域保持不变时,我无法找到在另一幅图像上添加颜色叠加的正确功能。
例如,在源图像上有一个半透明的白色圆圈,在它周围,一切都是完全透明的。当我用红色应用操作时,我想得到白色/红色圆圈,周围有完全透明的区域。
在HTML5画布上,它通过以下方式实现:
layerContext.globalCompositeOperation = "source-atop";
layerContext.fillStyle = color;
layerContext.fillRect(0, 0, w, h);
我尝试了alpha_composite
,blend
和composite
函数,但可能会误用它们。
编辑:这是我使用的:
overlay = Image.new('RGB', im1.size, (255, 0, 0))
im1.paste(overlay, mask=im1)
PIL结果稍微亮一点,但颜色是一样的。有什么想法吗?