gpt4 book ai didi

python - 如何用python创建透明的径向渐变?

转载 作者:行者123 更新时间:2023-12-04 01:25:20 28 4
gpt4 key购买 nike

我正在尝试创建一个渐变到清晰背景的径向渐变。我的目标是创建此渐变并将其作为背景粘贴到另一个图像。

到目前为止,我已经能够创建一个圆形渐变,但它不是透明的。我在stackoverflow中找到了下面的代码:

imgsize=(650,650)
image = Image.new('RGBA', imgsize)
innerColor = [153,0,0]
for y in range(imgsize[1]):
for x in range(imgsize[0]):
distanceToCenter = math.sqrt((x - imgsize[0]/2) ** 2 + (y - imgsize[1]/2) ** 2)
distanceToCenter = float(distanceToCenter) / (math.sqrt(2) * imgsize[0]/2)
r = distanceToCenter + innerColor[0] * (1 - distanceToCenter)
g = distanceToCenter + innerColor[1] * (1 - distanceToCenter)
b = distanceToCenter + innerColor[2] * (1 - distanceToCenter)
image.putpixel((x, y), (int(r), int(g), int(b)))

this is the image that is produced
我不想让它变黑,而是要清除。

感谢您的帮助 :)

最佳答案

我想我会绘制纯红色并使用 Numpy 计算透明度层并将其插入:

#!/usr/bin/env python3

import numpy as np
from PIL import Image

# Define width and height of image
W, H = 650, 650

# Create solid red image
im = Image.new(mode='RGB', size=(W,H), color=(153,0,0))

# Create radial alpha/transparency layer. 255 in centre, 0 at edge
Y = np.linspace(-1, 1, H)[None, :]*255
X = np.linspace(-1, 1, W)[:, None]*255
alpha = np.sqrt(X**2 + Y**2)
alpha = 255 - np.clip(0,255,alpha)

# Push that radial gradient transparency onto red image and save
im.putalpha(Image.fromarray(alpha.astype(np.uint8)))
im.save('result.png')

enter image description here

关键词 :Python,图像处理,径向渐变,alpha,透明度。

关于python - 如何用python创建透明的径向渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62045155/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com