【发布时间】:2021-06-18 08:25:43
【问题描述】:
我正在尝试为图像添加水印,但是如果不粘贴带有背景颜色的水印,我将无法这样做。 (见下例)
我尝试从以下website实现教程。
从下图可以看出,当前结果显示带有黑色背景的水印,这是不可取的。 (有关所需结果,请参见预期结果图片)
我正在使用 Linux/Ubuntu 20.04 和 Python 3.8
这是内容:
背景图片:
水印图片:
目前的成果:
预期结果:
水印透明后的结果:
以下是我使用的代码,与网站教程示例相同。
#adding transparency to watermark image(as suggested)
from PIL import Image, ImageFilter
img = Image.open('path_to_watermark').convert('RGBA')
img.putalpha(130)
img.save('path_to_watermark')
def watermark_with_transparency(input_image_path, output_image_path, watermark_image_path, position):
base_image = Image.open(input_image_path).convert('RGBA')
watermark = Image.open(watermark_image_path).convert('RGBA')
width, height = base_image.size
transparent = Image.new('RGBA', (width, height), (0,0,0,0))
transparent.paste(base_image, (0,0))
transparent.paste(watermark, position, mask=watermark)
transparent.show()
transparent.save(output_image_path)
if __name__ == '__main__':
img = 'path_to_input_image /home/...'
watermark_with_transparency(img, 'path_to_output', 'path_to_watermark', position=(0,0))
我做错了什么?感谢您的帮助。
【问题讨论】:
-
您的水印图片需要具有透明度。
-
谢谢。根据您的建议,我已经用代码和结果更新了问题。但是还有一些东西要添加(见上面的新图片)。
-
让我更清楚一点:水印图像需要有透明区域在文件中。这是一个在图像编辑程序中解决的问题,而不是在代码中。
标签: python python-imaging-library watermark