文章目录

  • 前言
  • 一、素材准备
    • 1.原图
    • 2.水印图
  • 二、使用PIL库给图片添加图片水印
    • 1.引入库
    • 2.定义图片路径
    • 3.打开原图
    • 4.打开水印图片
    • 5.计算水印图片大小
    • 6.计算原图大小
    • 7.调整水印图片大小
      • 7.1调整前
      • 7.2调整后
    • 8.计算水印图片位置
      • 8.1左上
      • 8.2左下
      • 8.3右上
      • 8.4右下
      • 8.5中间
    • 9.添加水印
    • 10.保存新图
  • 总结

前言

大家好,我是空空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 = 5y = 5

8.2左下

x = 5y = img_height - wm_height - 5

8.3右上

x = img_width - wm_width - 5y = 5

8.4右下

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