Python怎么给图片加水印

62 篇文章 0 订阅

在Python中,可以使用PIL(Python Imaging Library)库或者其更活跃的分支Pillow来给图片添加水印。下面是一个简单的示例,展示如何使用Pillow给图片添加文本水印:

from PIL import Image, ImageDraw, ImageFont

# 打开原始图片
image = Image.open("path_to_your_image.jpg")

# 创建一个可以在给定图像上绘图的对象
draw = ImageDraw.Draw(image)

# 设置字体和字体大小
font = ImageFont.truetype("arial.ttf", 50) # 请确保你有这个字体文件,或者使用系统自带的字体

# 设置水印文本和颜色
text = "Your Watermark Text"
textcolor = (255, 255, 255) # 白色

# 获取文本的尺寸
textwidth, textheight = draw.textsize(text, font)

# 计算文本在图片中的位置
position = ((image.width - textwidth), (image.height - textheight))

# 在图片上添加水印
draw.text(position, text, fill=textcolor, font=font)

# 保存带有水印的图片
image.save("watermarked_image.jpg")

注意:可能会报以下错误

AttributeError: 'ImageDraw' object has no attribute 'textsize'

是因为最新的Pillow 10.0.0 版本已经删除了这个,先卸载最新的Pillow,再安装Pillow 9.5.0版本就好

如果你想要添加图片作为水印,可以稍微修改上面的代码,如下所示:

from PIL import Image

# 打开原始图片
base_image = Image.open("path_to_your_image.jpg")

# 打开水印图片
watermark = Image.open("path_to_your_watermark.png").convert("RGBA")

# 调整水印图片的大小
watermark = watermark.resize((100, 100)) # 根据需要调整大小

# 将水印图片放置在原始图片的右下角
position = (base_image.width - watermark.width, base_image.height - watermark.height)

# 合并原始图片和水印图片
transparent = Image.new('RGBA', base_image.size, (0,0,0,0))
transparent.paste(base_image, (0,0))
transparent.paste(watermark, position, mask=watermark)

# 转换回RGB模式以保存为JPG格式
result_image = transparent.convert('RGB')

# 保存带有水印的图片
result_image.save("watermarked_image.jpg")

以上代码分别展示了如何使用文本和图片作为水印,并将它们添加到原始图片上。请根据你的具体需求进行相应的调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

svygh123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值