【发布时间】:2016-10-11 11:16:03
【问题描述】:
我有在图像上添加渐变的代码。
def st(path, gradient_magnitude=2.):
im = Image.open(path)
if im.mode != 'RGBA':
im = im.convert('RGBA')
width, height = im.size
gradient = Image.new('L', (width, 1), color=0xFF)
for x in range(width):
gradient.putpixel((x, 0), int(255 * (1 - gradient_magnitude * float(x) / width)))
alpha = gradient.resize(im.size)
black_im = Image.new('RGBA', (width, height), color=0x000000)
black_im.putalpha(alpha)
gradient_im = Image.alpha_composite(im, black_im)
gradient_im.save('out.jpg', 'JPEG')
如何让渐变更透明?
【问题讨论】:
-
使用
alpha=0.5而不是alpha = gradient.resize(im.size) -
我收到了这个错误 TypeError: integer argument expected, got float
-
如果 alpha 应该如何工作 - 新的 alpha 层。这可以是与该图像具有相同大小的“L”或“1”图像,也可以是整数或其他颜色值。这里 black_im.putalpha(alpha)
标签: python python-imaging-library pillow