Python 图片加水印
引言
在许多应用场景中,我们经常需要给图片添加水印,以保护图片的版权或者加强图片的信息传达。Python 是一门功能强大的编程语言,可以轻松实现图片加水印的功能。在本文中,我将带领你一步步实现 Python 图片加水印的过程,并且给出相应的代码示例。
步骤概览
下表展示了实现图片加水印的整体流程:
步骤 | 操作 |
---|---|
步骤 1 | 选择合适的库 |
步骤 2 | 加载原始图片 |
步骤 3 | 创建水印 |
步骤 4 | 合并图片和水印 |
步骤 5 | 保存加水印后的图片 |
代码实现
步骤 1:选择合适的库
要实现图片加水印的功能,我们需要使用一些图像处理库。在 Python 中,有许多优秀的图像处理库可供选择,比如 PIL
、opencv-python
等。在本文中,我们选择使用 PIL
(Python Imaging Library)库,因为它是一个功能强大且易于上手的图像处理库。
首先,我们需要安装 PIL
库。可以使用以下命令来安装:
pip install pillow
步骤 2:加载原始图片
在实现图片加水印的过程中,我们首先需要加载原始图片。使用 PIL
库的 Image
类,我们可以轻松地加载一张图片。
以下是加载图片的代码示例:
from PIL import Image
# 加载原始图片
image = Image.open('original_image.jpg')
上面的代码中,我们使用 Image.open()
方法加载了一张名为 original_image.jpg
的图片。你需要将该代码中的 original_image.jpg
替换为你自己的图片路径。
步骤 3:创建水印
接下来,在图片上创建水印。水印可以是文字、图片或者其他形式的标识。在本文中,我们选择使用文字作为水印。
以下是创建文字水印的代码示例:
from PIL import ImageDraw, ImageFont
# 创建水印
text = 'Watermark'
font = ImageFont.truetype('arial.ttf', size=30) # 选择合适的字体和字号
watermark = Image.new('RGBA', image.size) # 创建透明的水印图片
draw = ImageDraw.Draw(watermark)
text_width, text_height = draw.textsize(text, font) # 获取文字水印的尺寸
text_position = ((image.width - text_width) // 2, (image.height - text_height) // 2) # 计算文字水印的位置
draw.text(text_position, text, font=font, fill=(255, 255, 255, 128)) # 填充文字水印
上面的代码中,我们使用 ImageDraw
类创建了一个可以绘制水印的 draw
对象,并使用 text()
方法在水印上填充了文字。你可以根据需要修改文字内容、字体和其他参数。
步骤 4:合并图片和水印
接下来,我们需要将原始图片和水印合并在一起。使用 PIL
库的 Image.blend()
方法,我们可以将两张图片按照一定的透明度进行混合。
以下是合并图片和水印的代码示例:
# 合并图片和水印
blended_image = Image.blend(image.convert('RGBA'), watermark, alpha=0.5)
上面的代码中,我们使用 image.convert('RGBA')
将原始图片转换为 RGBA 模式,然后使用 Image.blend()
方法将原始图片和水印按照 0.5 的透明度进行混合。你可以根据需要修改透明度。
步骤 5:保存加水印后的图片
最后,我们将加水印后的图片保存到磁盘上