文章目录
- 前言
- 一、素材准备
- 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')
总结
- 使用PIL库打开需要添加水印的图片,可以使用open()函数。
- 使用PIL库打开水印图片,得到水印图像。可以使用上述同样的方式打开水印图片。
- 将水印图片添加到原始图片上,可以使用paste()函数。
- 保存添加水印后的图片,可以使用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等。同时可以通过参数来进行格式转换、大小调整等操作。