Python 图像处理库 Pillow 入门 (含代码 )
Pillow 是 Python里的图像处理库 (PIL :Python Image Library ),提供了了
广泛的文件格式支持 ,强大的图像处理能力 ,主要包括图像储存、图像显示、格
式转换以及基本的图像处理操作等。
1)使用 Image 类
PIL最重要的类是 Image class, 你可以通过多种方法创建这个类的实例 ;你可
以从文件加载图像 ,或者处理其他图像, 或者从 scratch 创建。
要从文件加载图像 ,可以使用 open( )函数 ,在 Image模块中 :
>>>from PIL import Image
>>>im = Image.open("E/photoshop/1.jpg")
加载成功后 ,将返回一个 Image对象 ,可以通过使用示例属性查看文件内容 :
>>>print(im.format, im.size, im.mode)
('JPEG', (600, 351), 'RGB')
>>>
format 这个属性标识了图像来源。如果图像不是从文件读取它的值就是 None。
size属性是一个二元 tuple ,包含 width和 height(宽度和高度 ,单位都是 px )。
mode 属性定义了图像 bands 的数量和名称 ,以及像素类型和深度。常见的
modes 有 “L” (luminance) 表示灰度图像, “RGB” 表示真彩色图像, and
“CMYK” 表示出版图像。
如果文件打开错误 ,返回 IOError 错误。
只要你有了 Image 类的实例 ,你就可以通过类的方法处理图像。比如 ,下列方
法可以显示图像 :
im.show()
2 )读写图像
PIL 模块支持大量图片格式。使用在 Image 模块的 open() 函数从磁盘读取文
件。你不需要知道文件格式就能打开它 ,这个库能够根据文件内容自动确定文件
格式。要保存文件 ,使用 Image 类的 save() 方法。保存文件的时候文件名变
得重要了。除非你指定格式 ,否则这个库将会以文件名的扩展名作为格式保存。
加载文件 ,并转化为 png格式 :
"Python Image Library Test"
from PIL import Image
import os
import sys
for infile in sys.argv[1]
f,e =os.path.splitext(infile)
outfile =f +".png"
if infile !=outfile
try
Image.open(infile).save(outfile)
except IOError
print("Cannot convert", infile)
save() 方法的第二个参数可以指定文件格式。
3 )创建缩略图
缩略图是网络开发或图像软件预览常用的一种基本技术 ,使用 Python的 Pillow
图像库可以很方便的建立缩略图 ,如下 :
# create thumbnail
size = (128,128)
for infile in glob.glob("E/photoshop/*.jpg")
f, ext =os.path.splitext(infile)
img = Image.open(infile)
img.thumbnail(size,Image.ANTIALIAS)
img.save(f+".thumbnail","JPEG")
上段代码对 photoshop下的jpg 图像文件全部创建缩略图 ,并保存 ,glob模
块是一种智能化的文件名匹配技术 ,在批图像处理中经常会用到。
注意 :Pillow 库不会直接解码或者加载图像栅格数据。当你打开一个文件 ,只
会读取文件头信息用来确定格式 ,颜色模式 ,大小等等 ,文件的剩余部分不会主
动处理。这意味着打开一个图像文件的操作十分快速 ,跟图片大小和压缩方式无
关。
4 )图像的剪切、粘贴与合并操作
Image