如何使用python沿图像/遮罩图像的边缘创建透明渐变?

2024-06-01 07:49:20 发布

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

基本上我想为淡入透明的图像创建一个光晕效果

我有伤口(和他们的面具)的图像,没有背景。我想在它后面加一个红色的渐变,这样如果我把它贴在某个东西上,看起来伤口周围的区域受到了刺激

imagemask ...

最初,我制作了一个径向(圆形)渐变,并将我的透明图像粘贴在上面,但这对于我的非圆形图像来说并不好

image with circle gradient

same image as above,but pasted on white更容易看到渐变

现在,我认为最好的办法是使梯度形状围绕图像边缘移动一定距离,然后逐渐消失。 类似这样的东西(我在绘画方面做得很差……但基本上是为了让它离开物体边缘一定距离,然后淡出)

paint version of what i would like to do ...

我的圆形渐变代码发布在下面,这创建了一个透明的圆形渐变。一旦我有了这个,我就把我的透明图像粘贴在上面。我不知道如何更改此代码,使其在图像边缘创建渐变

import numpy as np, 
from PIL import Image

W,H=900,900
im = Image.new(mode='RGB', size=(W,H), color=(153,0,0))
Y = np.linspace(-1, 1, H)[None, :]*255
X = np.linspace(-1, 1, W)[:, None]*255
alpha = np.sqrt(X**2 + Y**2) # equation of a circle 
alpha = 255 - np.clip(0,255,alpha)

请帮忙


Tags: of代码图像imageimportalpha距离粘贴