通过Python的PIL库给图片添加图片水印


前言

大家好,我是空空star,本篇给大家分享一下通过Python的PIL库给图片添加图片水印。
上一篇已经介绍过了PIL库是什么?安装PIL 、查看PIL版本,这里就不再介绍了。


一、素材准备

1.原图

2.水印图

这里我去C站首页找了一个,看起来是不是很酷。

二、使用PIL库给图片添加图片水印

1.引入库

from PIL import Image

2.定义图片路径

local = '/Users/kkstar/Downloads/video/pic/'

3.打开原图

img = Image.open(local+'demo.jpg')

4.打开水印图片

watermark = Image.open(local+'csdn.png')

5.计算水印图片大小

wm_width, wm_height = watermark.size

6.计算原图大小

img_width, img_height = img.size

7.调整水印图片大小

7.1调整前

7.2调整后

wm_width = int(wm_width*1.5)
wm_height = int(wm_height*1.5)
watermark = watermark.resize((wm_width, wm_height))

8.计算水印图片位置

8.1左上

x = 5
y = 5

8.2左下

x = 5
y = img_height - wm_height - 5

8.3右上

x = img_width - wm_width - 5
y = 5

8.4右下

x = img_width - wm_width - 5
y = img_height - wm_height - 5

8.5中间

x = int((img_width - wm_width)/2)
y = int((img_height - wm_height)/2)

其他位置通过调整计算x、y的值即可。

9.添加水印

img.paste(watermark, (x, y), watermark)

10.保存新图

img.save(local+'result.jpg')

总结

  1. 使用PIL库打开需要添加水印的图片,可以使用open()函数。
  2. 使用PIL库打开水印图片,得到水印图像。可以使用上述同样的方式打开水印图片。
  3. 将水印图片添加到原始图片上,可以使用paste()函数。
  4. 保存添加水印后的图片,可以使用save()函数。

image.size:返回一个包含图片尺寸(宽度和高度)的元组。例如,对于一个400x300像素的图片,该方法返回(400, 300)。通过调用image.size方法,可以获取图像的大小信息并进行后续处理。
image.resize:可以用来调整图像的尺寸大小,同时还可以使用不同的插值方法来处理像素。通过指定待处理的图像尺寸和插值方法,可以实现对图像的缩放、裁剪、旋转等各种形式的变换。resize方法的语法为:image.resize(size, resample=None),其中size是一个二元组,表示新的图像尺寸,resample是插值方法,默认为None,表示使用最近邻插值。
image.paste:用于将一个图像粘贴到另一个图像上面,可以将水印图片嵌入到目标图片中。第9步中,第一个传入的是要粘贴的图像,第二个传入的是粘贴图像的左上角的坐标,第三个参数是要粘贴的图像的遮罩。
image.save:用于将图像保存为文件,可以指定图像格式、质量、压缩等参数。该方法支持多种图像格式,包括JPG、PNG、BMP等。同时可以通过参数来进行格式转换、大小调整等操作。

猜你喜欢

转载自blog.csdn.net/weixin_38093452/article/details/130228971