这里博主分享一个pillow库的使用笔记专题

Pillow

除了 PIL 和 Pillow 库之外,Python 还提供了一些其他图像处理库:
Scikit-image:一款基于 scipy 科学计算的图像处理软件包,以数组的形式对图像进行处理;
OpenCV:其实是一个 C++ 图像处理库,不过它提供了 Python 语言的接口。(需要进阶的话可以看这个)

opencv在人工智能,面部识别方面应用的比较广泛

Pillow库特点Pillow 库作为图像处理的常用库,主要有以下三大特点:

  1. 支持广泛的文件格式Pillow 支持广泛的图像格式,比如 “jpeg”,”png”,”bmp”,”gif”,”ppm”,”tiff” 等。同时,它也支持图像格式之间的相互转换。

  2. 提供了丰富的功能Pillow 提供了丰富的图像处理功能,可概括为两个方面:
    图像归档,包括创建缩略图、生成预览图像、图像批量处理等;
    图像处理,则包括调整图像大小、裁剪图像、像素点处理、添加滤镜、图像颜色处理等。

  3. 配合GUI工具使用Pillow 库可以配合 Python GUI(图形用户界面)工具 Tkinter 一起使用(将他俩联系在一起用才好玩,不然没有界面,看起来没有感觉)

Pillow创建Image对象

Image 类是 Pillow 库中最为重要的类,该类被定义在和与其同名的 Image 模块中。

使用下列导包方式引入 Image 模块:from PIL import Image

使用 Image 类可以实例化一个 Image 对象,通过调用该对象的一系列属性和方法对图像进行处理。

Pilow 提供了两种创建 Image 实例对象的方法:

  1. open()使用 Image 类的 open() 方法,可以创建一个 Image 对象,语法格式如下:
    im = Image.open(fp,mode=”r”)

fp:即 filepath 的缩写,表示文件路径,字符串格式;
mode:可选参数,若出现该参数,则必须设置为 “r”,否则会引发 ValueError 异常。

1
2
3
4
from PIL import Image
img = Image.open('D:\\File\\All\\web\\python\\blog\\670099.jpg')
#调用show()函数才能显示出图片
img.show()
  1. new()使用 Image 类提供的 new() 方法可以创建一个新的 Image 对象,语法格式如下:

im=Image.new(mode,size,color)

mode:图像模式,字符串参数,比如 RGB(真彩图像)、L(灰度图像)、CMYK(色彩图打印模式)等(下面博主会介绍);

size:图像大小,元组参数(width, height)代表图像的像素大小;

color:图片颜色,默认值为 0 表示黑色,参数值支持(R,G,B)三元组数字格式、颜色的十六进制值以及颜色英文单词。

1
2
im = Image.new(mode='RGB',size=(200,200),color='#AAAAFF')
im.show()

new相当于创建一个新的图片了而open相当于是打开一张图片

Pillow Image对象属性

一般直接输出这个对象就可以看到关于吧这张图片的大部分的信息,可以不用使用这些属性来查看了

1) size:查看图像的尺寸
1
2
3
4
5
6
7
8
from PIL import Image
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
# 方法一
print(img.size)
# 方法二
print(img)
# 方法三
print(img.width,img.height)
2) format:查看图片的格式
1
2
3
from PIL import Image
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
print(img.format)
3) readonly:图片是否为只读
1
2
3
from PIL import Image
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
print(img.readonly)

该属性的返回为 0 或者 1,分别对应着是和否,输出结果如下:图像是否为只读: 1

4) info:查看图片相关信息
1
2
3
from PIL import Image
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
print(img.info)

该属性的返回值为字典格式,输出结果如下:图像信息: {‘dpi’: (96, 96), ‘Software’: ‘Snipaste’}

主要显示的都是二进制源码

5)mode:图像模式
1
2
3
from PIL import Image
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
print(img.mode)