PIL(Python Image Library)是 python 的第三方图像处理库, PIL 的功能非常的强大, 几乎被认定是 Python 的官方图像处理库了.
由于 PIL 仅支持到 python2.7 于是一群志愿者在 PIL 的基础上创建了兼容的版本, 名字叫 Pillow, 支持最新的 python3, 而且扩容了很多特性, 所以在 python3 我们可以直接安装 Pillow.
我们可以去官网查看它的资料: http://effbot.org/.
它可以做的事情:
图像归档(Image Archives).PIL 非常适合于图像归档以及图像的批处理任务. 你可以使用 PIL 创建缩略图, 转换图像格式, 打印图像等等.
图像展示(Image Display).PIL 较新的版本支持包括 Tk PhotoImage,BitmapImage 还有 Windows DIB 等接口. PIL 支持众多的 GUI 框架接口, 可以用于图像展示.
图像处理 (Image Processing).PIL 包括了基础的图像处理函数, 包括对点的处理, 使用众多的卷积核(convolution kernels) 做过滤(filter), 还有颜色空间的转换. PIL 库同样支持图像的大小转换, 图像旋转, 以及任意的仿射变换. PIL 还有一些直方图的方法, 允许你展示图像的一些统计特性. 这个可以用来实现图像的自动对比度增强, 还有全局的统计分析等.
官网中 PIL 的模块:
这里主要介绍基本的 Image 模块
Image 模块
Image 模块是 PIL 库基本的核心类, 该模块提供了很多工厂功能, 比如加载图像和创建新图像. 以下介绍它的一些基本用法
open(filename,mode): 打开一张图像
- from PIL import Image
- img = Image.open(r'D:\workspace\pachong\ceshi\timg.jpg', 'r')
- print(img,type(img))
可以看到:
- # 获得图像的高和宽
- h, w = img.size
- # 获得图像的格式
- geshi = img.format
- # 获得图像的模式
- mo = img.mode
- # 将文件重新保存为 time.PNG
- img.save('time', 'png')
- # 创建缩略图
- img.thumbnail((50,50),resample=Image.BICUBIC)
- img.show()
- # 保存与图像数据相关的字典
- dic = img.info
- # 验证文件是否损坏, 如果损坏回报异常
- img.verify()
- # 翻转图像
- new_img = img.transpose(Image.FLIP_LEFT_RIGHT)
- new_img.show()
可以是下面几种方法: FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM,ROTATE_90,ROTATE_180 或 ROTATE_270.
- # 显示图像
- new_img.show()
- # 两张图片混合, 两个图像必须具有相同的大小和模式
Image.blend(image1,image2,alpha) 图像
# 如果 alpha 为 0.0, 则返回第一个图像的副本. 如果 alpha 为 1.0, 则返回第二个图像的副本. alpha 值没有限制.
如有必要, 剪切结果以适应允许的输出范围.
Image.eval(图像, 功能) 图像
- # 将函数 (应该采用一个参数) 应用于给定图像中的每个像素
- # 色素分离
- r, g, b = img.split()
- r.show()
- g.show()
- b.show()
- # 旋转图像 90 度
- img1 = img.rotate(90)
- img1.show()
- # 调整大小
- img1 = img.resize((100, 100))
- img1.show()
- # 将一张图像粘贴到指定位置
- im.paste(图像, 方框)
- # 调为映像分配存储并从文件 (或从源, 从延迟操作) 加载它
- pix = img.load
- print(pix)
- # 返回图像的直方图
- img_lst = img.histogram()
im.copy() 图像
# 复制图像. 如果您希望将内容粘贴到图像中, 但仍保留原始图像, 请使用此方法.
先简单总结到这里, Image 模块单独使用率是比较低的, 以后再总结 PIL 的其他模块.
python 之 PIL 库(Image 模块)
来源: http://www.bubuko.com/infodetail-3021073.html