python - 如何在枕头中使用 alpha_composite?

标签 python python-imaging-library

我尝试用 Pillow 在照片上放一个透明的标志:

# First, I convert my photo and watermark to RGBA:
image = Image.open(photo_image_path).convert('RGBA')
watermark = Image.open(watermark_image_path).convert('RGBA')

# then I сreate an empty layer with the same size as image
# and put watermark in x/y position
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(watermark, (x, y))

# then add transparency 
layer.putalpha(128)

# and merge image with logo
result = Image.alpha_composite(image, layer)

最初我的水印有一个全透明的背景。但是我在所有图像尺寸上都有黑色半透明背景的结果。我做错了什么?

最佳答案

我已经解决了这个问题:

image = Image.open(photo_image_path).convert('RGBA')
watermark = Image.open(watermark_image_path).convert('RGBA')
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(watermark, (x, y))

# Create a copy of the layer
layer2 = layer.copy()

# Put alpha on the copy
layer2.putalpha(128)

# merge layers with mask
layer.paste(layer2, layer)


result = Image.alpha_composite(image, layer)

关于python - 如何在枕头中使用 alpha_composite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64321963/

相关文章:

Python 导入在运行模块时有效,但在导入此模块时中断

python - 处理一行的 DataFrame 是否比处理一系列的 DataFrame 慢得多?

python - 修正线性单元的反向传播

django - 在 Django 中裁剪图像会导致内存大幅增加

python - PIL 如何根据图像上绘制的文本缩放图像

python - 调整PIL图像大小: ValueError: Unknown resampling filter

python - 如何使用 python 从内联样式标记中删除特定值对?

python - 如何将 python 3.4.3 链接到 opencv?

python - 图像到 0,1 文本

Python PIL/Image 从序列图像制作 3x3 网格