软件测试|使用pillow给图片添加水印

简介

水印是一种在图片上添加文字或图像的技术,用于标识图片的来源、版权信息或其他附加信息。Pillow 是一个强大的 Python 图像处理库,它提供了许多功能,包括给图片添加水印。本文将详细介绍如何使用 Pillow 给图片添加水印。

创建水印

在添加水印之前,首先需要创建水印图像或文本。您可以使用图像编辑软件(如 Photoshop)创建水印图像,或者使用文字编辑器创建水印文本。对于本示例,我们将使用水印文本。

创建一个名为 watermark.png 的水印文本图片,将其保存在与脚本相同的目录中。确保水印图像的背景是透明的,这样它才能正确叠加在图片上。

添加水印到图片

接下来,让我们使用 Pillow 来将水印添加到一张图片上。以下是一个详细的步骤:

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

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

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

# 获取原始图片的宽度和高度
width, height = image.size

# 创建一个新的图像对象,用于叠加水印
watermarked_image = image.copy()

# 计算水印位置(通常在右下角)
margin = 10
position = (width - watermark.width - margin, height - watermark.height - margin)

# 叠加水印
watermarked_image.paste(watermark, position, watermark)

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

# 显示图片
watermarked_image.show()

上述代码步骤如下:

  1. 使用 Image.open() 打开原始图片和水印图片。
  2. 获取原始图片的宽度和高度。
  3. 创建一个新的图像对象 watermarked_image,该图像是原始图片的副本。
  4. 计算水印的位置,通常在右下角,并留出一些边距。
  5. 使用 paste() 方法将水印图像叠加到原始图片上。
  6. 使用 save() 方法保存带水印的图片。
  7. 使用 show() 方法显示带水印的图片。

自定义水印样式

当然我们也可以自己定义水印的样式,步骤如下:

from PIL import ImageFont, ImageDraw

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

# 创建一个可绘制的对象
draw = ImageDraw.Draw(image)

# 定义水印文本
watermark_text = "My Watermark"

# 定义字体和大小
font = ImageFont.truetype("arial.ttf", 36)

# 定义水印颜色
fill_color = (255, 255, 255, 128)

# 计算水印位置(通常在右下角)
margin = 10
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font)
position = (width - text_width - margin, height - text_height - margin)

# 将水印添加到图片上
draw.text(position, watermark_text, font=font, fill=fill_color)

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

# 显示图片
image.show()

在上述代码中,我们使用 ImageDraw.Draw() 创建了一个可绘制对象,然后定义了水印文本、字体、大小、颜色和位置,并将水印添加到原始图片上。

总结

本文主要介绍了如何使用pillow给图片添加水印,在添加水印的时候,我们还可以自定义水印的样式,这样我们可以更好地实现对我们图片版权的保护

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

你可能感兴趣的:(软件测试,pillow,功能测试,软件测试,自动化测试,程序人生,职场和发展)