在Pillow中,可以使用ImageDraw模块来在图像上绘制各种形状和文本。因此,要在图像上添加水印,可以使用ImageDraw模块来绘制文本或其他图形。
ImageDraw常用方法 | |
方法 | 说明 |
text | 在图像上绘制文字 |
line | 绘制直线、线段 |
eclipse | 绘制椭圆形 |
rectangle | 绘制矩形 |
polygon | 绘制多边形 |
以下是一个简单的示例,演示如何在图像上添加文本水印:
from PIL import Image, ImageDraw, ImageFont
# 打开图像
im = Image.open("example.jpg")
# 获取图像宽度和高度
width, height = im.size
# 创建一个ImageDraw对象
draw = ImageDraw.Draw(im)
# 指定字体和文字内容
font = ImageFont.truetype("arial.ttf", 36)
text = "watermark"
# 计算文本的位置并绘制文本
text_width, text_height = draw.textsize(text, font)
x = width - text_width - 10
y = height - text_height - 10
draw.text((x, y), text, font=font)
# 保存图像
im.save("example_with_watermark.jpg")
在此示例中,首先使用Image.open()打开图像,然后使用
ImageDraw.Draw()创建一个ImageDraw对象。然后,使用ImageFont.truetype()指定要使用的字体,并使用draw.textsize()计算文本的宽度和高度。接下来,计算文本的位置,并使用draw.text()方法在图像上绘制文本。最后,使用im.save()保存带有水印的图像。
除了文本,还可以使用ImageDraw模块绘制各种形状,如线条、矩形、椭圆等。例如,要在图像上添加一个矩形水印,可以使用以下代码:
# 创建一个矩形区域
rect = (10, 10, width - 10, height - 10)
# 绘制矩形
draw.rectangle(rect, outline="red", width=5)
# 保存图像
im.save("example_with_watermark.jpg")
此代码将创建一个矩形区域,并使用draw.rectangle()方法在图像上绘制矩形。可以通过指定颜色和线宽来自定义矩形的外观。最后,使用im.save()保存带有水印的图像。