如何使用Python在图片上添加文字水印

1. 简介

在很多情况下,我们需要在图片上添加水印,以表明图片的来源或版权信息。Python提供了很多库,可以用于在图片上添加水印。在本文中,我们将讨论如何使用Python在图片上添加文字水印。

2. 安装库

在开始之前,我们需要安装一些Python库。下面是需要安装的库:

opencv-python

numpy

Pillow

可以使用pip install命令来安装这些库:

pip install opencv-python numpy Pillow

3. 图片预处理

在添加水印之前,我们需要对图片进行一些预处理。具体来说,我们需要将图片转换成灰度图像,并确保灰度图像的大小与原始图像的大小相同。

3.1 加载图片

我们可以使用opencv库的imread函数来加载图片,代码如下所示:

import cv2  

image = cv2.imread('example.jpg')

上述代码将图片加载到变量image中。

3.2 转换为灰度图像

我们可以使用cvtColor函数从彩色图像转换为灰度图像,代码如下所示:

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

上述代码将彩色图像转换为灰度图像,并将结果保存在gray变量中。

3.3 调整大小

通常情况下,将水印添加到原始图像的大小和比例都会有所变化。因此,在添加水印之前,我们需要确保灰度图像的大小与原始图像相同。我们可以使用resize函数,如下所示:

gray = cv2.resize(gray, (image.shape[1], image.shape[0]))

上述代码将灰度图像调整为与原始图像相同的大小。

4. 添加水印

现在,我们已经完成了预处理步骤,并且可以继续添加水印了。我们可以使用Pillow库来添加水印。Pillow是一个Python Imaging Library(PIL)的分支,它提供了方便而强大的图像处理功能。

4.1 加载图片并添加水印

下面的代码演示了如何加载图片并添加水印:

from PIL import Image, ImageDraw, ImageFont

img = Image.open('example.jpg')

draw = ImageDraw.Draw(img)

text = 'Watermark'

font = ImageFont.truetype('arial.ttf', 36)

textwidth, textheight = draw.textsize(text, font)

width, height = img.size

x = width - textwidth - 10

y = height - textheight - 10

draw.text((x, y), text, font=font)

img.show()

上述代码打开一个名为example.jpg的图像,并在其右下角添加文本水印。

4.2 保存图像

完成添加水印的操作后,我们可以将图片保存到文件中:

img.save('watermarked.jpg')

上述代码将添加水印后的图像保存成名为watermarked.jpg的文件。

5. 结论

在本文中,我们讨论了如何在Python中使用opencv和Pillow库添加水印。通过了解预处理步骤和添加水印的基本概念,您可以使用Python轻松地添加水印到自己的图像中。

后端开发标签