欢迎访问宙启技术站
智能推送

使用Python的PIL库添加水印到图像中

发布时间:2023-12-24 10:10:27

在Python中,可以使用PIL(Python Imaging Library)库来添加水印到图像中。PIL库提供了各种图像处理功能,包括图像的操作、转换、合并等。

以下是一个使用PIL库添加水印的示例:

首先,需要安装PIL库。可以使用以下命令来安装PIL库:

pip install pillow

接下来,导入必要的库:

from PIL import Image, ImageDraw, ImageFont

然后,加载原始图像和水印图像:

original_image = Image.open('original_image.jpg')
watermark_image = Image.open('watermark_image.png')

可以使用open函数打开图像文件,并将其存储在一个变量中。

接下来,调整水印的大小,使其适应原始图像的大小:

watermark_width = original_image.width // 4
watermark_height = watermark_image.height * watermark_width // watermark_image.width
watermark_image = watermark_image.resize((watermark_width, watermark_height), Image.ANTIALIAS)

这里将水印的宽度设置为原始图像宽度的四分之一,并根据水印的宽高比例设置相应的高度。同时,使用resize函数将水印图像调整为适应原始图像的大小,并使用ANTIALIAS选项进行平滑处理。

然后,确定水印的位置:

position = (original_image.width - watermark_width, original_image.height - watermark_height)

这里将水印放在原始图像的右下角。可以根据需要自定义水印的位置。

接下来,创建一个新的图像对象,并将原始图像复制到新图像中:

result_image = Image.new('RGBA', original_image.size)
result_image.paste(original_image, (0, 0))

这里使用new函数创建了一个新的图像对象,设置图像的模式为RGBA(包含RGB和Alpha通道),并将原始图像复制到新图像中。

然后,将水印图像粘贴到新图像中:

result_image.paste(watermark_image, position, watermark_image)

使用paste函数将水印图像粘贴到新图像中,并使用position确定水印的位置。

最后,保存新图像:

result_image.save('result_image.jpg')

使用save函数将新图像保存到文件中。

完整的示例代码如下:

from PIL import Image, ImageDraw, ImageFont

original_image = Image.open('original_image.jpg')
watermark_image = Image.open('watermark_image.png')

watermark_width = original_image.width // 4
watermark_height = watermark_image.height * watermark_width // watermark_image.width
watermark_image = watermark_image.resize((watermark_width, watermark_height), Image.ANTIALIAS)

position = (original_image.width - watermark_width, original_image.height - watermark_height)

result_image = Image.new('RGBA', original_image.size)
result_image.paste(original_image, (0, 0))
result_image.paste(watermark_image, position, watermark_image)

result_image.save('result_image.jpg')

运行以上代码后,将在当前目录下生成一张带水印的新图像(result_image.jpg)。

通过上述示例,可以了解到使用PIL库来添加水印的基本步骤。可以根据实际需求,调整水印的大小、位置、透明度等参数,来实现更加个性化的水印效果。