(目录)
前言
- 在Python中,Pillow是一个强大的图像处理库,它是PIL(Python Imaging Library)的一个分支,支持"jpeg","png","bmp","gif","ppm","tiff" 等多种图像文件格式,通过本篇文章,你将了解到pillow库不同功能的实践方法,不止有读取和保存图片,创建缩略图和合并到图像、模糊、裁剪、翻转和旋转图像、调整大小和添加水印、添加滤镜和处理图像颜色等等。后面还会讲解一些利用Pillow库制作的一些图片脚本以及利用pyqt5和tkinter做的图形化界面。
导航
pillow的使用篇
- 图像处理库Pillow(PIL)的使用-1(实例+详细注释+图片脚本)
- 图像处理库Pillow(PIL)的使用-2(实例+详细注释+图片脚本)
- 图像处理库Pillow(PIL)的使用-3(实例+详细注释+图片脚本)
图片脚本篇
Pillow库的使用
安装
- 既然是第三方库,肯定免不了安装:使用pip安装Pillow
pip install Pillow
这里还有一个需要注意的就是不同的pillow库支持的python版本不同, Pillow库目前最新的版本为11.0.0,我这里使用的就是最新版本,根据你自己的python解释器版本下载对应的Pillow库,下面是版本对照图:
创建Image图像
Image 类是 Pillow 库中最为重要的类,该类被定义在和与其同名的 Image 模块中。 使用下列导包方式引入 Image 模块:
from PIL import Image
使用 Image 类可以实例化一个 Image 对象,通过调用该对象的一系列属性和方法对图像进行处理。Pilow 提供了两种创建 Image 实例对象的方法,分别是open()和new()方法,下面对它们进行简单的介绍。
open()
使用Image的open()方法,可以创建一个Image对象,语法格式如下:
image = Image.open(fp,mode='r')
参数说明:
- fp:文件路径(filepath)的缩写,字符串格式
- 可选,默认为r
from PIL import Image # 导入Image图像处理模块
# 创建一个Image对象
image = Image.open('1.jpeg')
# 显示图片
image.show()
输出:
new()
使用Image类提供的new()方法可以创建一个新的Image对象:
image = Image.new(mode,size,color)
参数说明:
mode:图像模式,字符串参数,如RGB(真色彩模式),RGB(真色彩+透明通道),L(灰度模式)等参数
size:图片的尺寸,元组参数(width,height)
color:图片的颜色,参数可以为RGB三元组数字格式(255,255,255),颜色的十六进制("#efefef")以及颜色英文单词("pink"),可选参数,如果不写,会根据mode参数使用默认值来填充图像
from PIL import Image # 导入Image图像处理模块
# 创建一个Image对象
image = Image.new(mode='RGB',size=(224,224),color='pink') # 创建一个224x224的粉色图像
# 显示图片
image.show()
# 保存图片
image.save('pink_test.jpg')
输出:
Image对象的属性
size
- 查看图片的尺寸
format
- 查看图片的格式
mode
- 查看图片的图像模式
info
- 查看图片的信息
下面为示例:
from PIL import Image # 导入Image图像处理模块
# 创建一个Image对象
image = Image.open('1.jpeg')
# 图片的尺寸
print(f"图片的尺寸: {image.size}")
# 图片的格式
print(f"图片的格式: {image.format}")
# 图片的模式
print(f"图片的模式: {image.mode}")
# 图片的信息
print(f"图片的信息: {image.info}")
输出:
图片的尺寸: (474, 325)
图片的格式: JPEG
图片的模式: RGB
图片的信息: {'jfif': 257, 'jfif_version': (1, 1), 'dpi': (0, 0), 'jfif_unit': 1, 'jfif_density': (0, 0), 'exif': b'Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x02@\x00\x00\x03\x00\x00\x00\x01\x00U\x00\x00@\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00'}
还有其他不常用的属性,例如图片的色彩模式,调色板等等,大家可以自行去了解一下。
共勉
感觉累就对了,那是因为你在走上坡路!
博客
- 本人是一个渗透爱好者,不时会在微信公众号laity的渗透测试之路更新一些实战渗透的实战案例,感兴趣的同学可以关注一下,大家一起进步。