如何解决使用 Pillow 对图像进行水印
我正在尝试为图像添加水印,但是如果不使用背景颜色粘贴水印,我就无法这样做。 (见下例)
我尝试实施以下 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))
transparent.paste(base_image,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))
我做错了什么?感谢您的帮助。
解决方法
您正在粘贴一个没有透明度的图像。 作为一个 PNG,它并不意味着它包含透明度,而是一个 alpha 层,在这种情况下,每个像素等于 255
无需使用 putalpha 使其透明,您只需要一个黑色区域透明的 PNG 文件
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。