Python添加水印
简介
在数字图像处理中,水印是一种用于保护图像版权和验证图像来源的技术。水印可以是透明的、半透明的或可见的,可以嵌入到图像中的任何位置。在本文中,我们将介绍使用Python添加水印的方法,并提供相应的代码示例。
准备工作
在开始之前,我们需要确保已经安装了Python和所需的图像处理库PIL(Python Imaging Library)。可以使用以下命令安装PIL库:
pip install pillow
添加文字水印
要向图像添加文字水印,我们可以使用PIL库中的ImageDraw
和ImageFont
模块。以下是一个示例代码,演示了如何添加文字水印:
from PIL import Image, ImageDraw, ImageFont
def add_text_watermark(image_path, text, output_path):
# 打开图像
image = Image.open(image_path)
draw = ImageDraw.Draw(image)
# 设置水印文本和字体样式
font = ImageFont.truetype("arial.ttf", 36) # 可以根据需要替换字体文件和字号
text_width, text_height = draw.textsize(text, font)
text_position = (image.width - text_width, image.height - text_height)
# 添加水印文本
draw.text(text_position, text, font=font, fill=(255, 255, 255, 128))
# 保存图像
image.save(output_path)
# 示例用法
add_text_watermark("input.jpg", "Watermark Text", "output.jpg")
在上面的示例中,我们首先打开图像,然后使用ImageDraw
模块创建一个draw
对象。接下来,我们选择一个字体样式并计算水印文本的大小和位置。最后,我们使用draw.text()
方法添加水印文本,并保存图像。
添加图片水印
除了文字水印之外,我们还可以添加图片水印。以下是一个示例代码,演示了如何添加图片水印:
from PIL import Image
def add_image_watermark(image_path, watermark_path, output_path):
# 打开图像和水印图像
image = Image.open(image_path)
watermark = Image.open(watermark_path)
# 调整水印大小
watermark_ratio = 0.25 # 水印大小相对于图像的比例
watermark_width = int(image.width * watermark_ratio)
watermark_height = int(watermark_height.width * watermark_ratio)
watermark = watermark.resize((watermark_width, watermark_height))
# 计算水印位置
watermark_position = (image.width - watermark_width, image.height - watermark_height)
# 添加水印
image.paste(watermark, watermark_position, mask=watermark)
# 保存图像
image.save(output_path)
# 示例用法
add_image_watermark("input.jpg", "watermark.png", "output.jpg")
在上面的示例中,我们首先打开图像和水印图像,然后根据比例调整水印的大小。接下来,我们计算水印的位置,并使用image.paste()
方法将水印添加到图像中。最后,我们保存图像。
总结
通过使用Python的PIL库,我们可以方便地给图像添加水印。本文介绍了如何添加文字水印和图片水印,并提供了相应的代码示例。根据需要,可以根据实际情况调整字体、水印位置和大小等参数。希望本文对您理解和使用Python添加水印有所帮助!