欢迎访问宙启技术站
智能推送

在图片上添加水印的ImageDraw方法及实例

发布时间:2023-12-26 13:36:19

在Python中,可以使用PIL库(Python Imaging Library)的ImageDraw模块来在图片上添加水印。ImageDraw模块提供了一些方法来在图片上绘制颜色、线条、文字等。

下面是一个简单的例子,演示如何使用ImageDraw模块在一张图片上添加文本水印:

from PIL import Image, ImageDraw, ImageFont

# 打开原始图片
image_path = 'original_image.jpg'
image = Image.open(image_path)

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

# 添加水印文本
text = "Watermark"
font = ImageFont.truetype("arial.ttf", 36)  # 使用指定的字体和大小
text_width, text_height = draw.textsize(text, font)  # 获取文本的宽度和高度
x = image.width - text_width - 10  # 水印文本的x坐标
y = image.height - text_height - 10  # 水印文本的y坐标
draw.text((x, y), text, font=font, fill=(255, 255, 255, 128))  # 绘制文本

# 保存图片
output_path = 'watermarked_image.jpg'
image.save(output_path)

在上面的例子中,我们首先打开了一张原始图片,然后创建了一个可以在图片上绘制的对象draw。接着,我们定义了水印的文本内容和字体,并获取了文本的宽度和高度。根据图片的宽度和高度,计算出水印文本的位置(位于右下角),然后使用draw.text()方法在图片上绘制文本。最后,我们保存添加水印后的图片。

这只是一个简单的例子,实际上ImageDraw模块还提供了其他一些方法,如绘制直线、矩形、椭圆、多边形等。可以根据需要选择适合的方法来添加水印或绘制其他图形。

下面是一个使用ImageDraw模块绘制矩形框的例子:

from PIL import Image, ImageDraw

# 打开原始图片
image_path = 'original_image.jpg'
image = Image.open(image_path)

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

# 添加矩形框
left = 100
top = 100
right = 500
bottom = 400
draw.rectangle([left, top, right, bottom], outline='red', width=2)  # 绘制矩形框

# 保存图片
output_path = 'rectangle_image.jpg'
image.save(output_path)

在上面的例子中,我们使用draw.rectangle()方法绘制了一个矩形框,指定了矩形框的左上角和右下角坐标,以及矩形框的边框颜色和宽度。最后,我们保存绘制矩形框后的图片。

使用ImageDraw模块可以在图片上添加各种水印或绘制图形,可以根据具体需求进行进一步的探索和应用。