在图片上添加水印的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模块可以在图片上添加各种水印或绘制图形,可以根据具体需求进行进一步的探索和应用。
