图像处理是常用的技术,Python 3 中Pillow 库是 Python 最常用的图像处理库,最高版本为5.2.0。与Python2的Pil库相比较,Pil 库与 Pillow 不能同时存在于同一环境中,若已安装Pil 库,则需卸载。
使用pip安装Pillow:
使用 `Image.open()` 创建图像实例是常用的方法,`from PIL import Image` 导入 Image 模块,通过 `open()` 函数即可载入图像文件。`open()` 函数能自动判断图片格式,仅需指定文件位置。成功则返回一个 Image 对象,文件载入失败则引发 IOError 异常。
1. 通过文件创建 Image 对象
直接通过文件创建 Image 图像对象是最常见的方法。
示例:通过文件创建 Image 图像对象
代码解读:
实例属性说明: `format` 表示图像格式,`size` 表示图像的 (宽,高) 元组,`mode` 通常为 RGB 真彩图像,L 为灰阶图像,CMYK 印刷色彩,RGBA 带透明度的真彩图像,YCbCr 彩色视频格式,LAB L * a * b颜色空间,HSV 等。 `show()` 方法用于使用系统默认图片查看器显示图像,主要用于调试。
2. 从打开文件中读取
可以从文件对象读取,但文件对象必须实现 `read()`, `seek()`, 和 `tell()` 方法,并且以二进制模式打开。
示例:从文件对象中读取图像
3. 从 string 二进制流中读取
要从字符串数据中读取图像,需使用 io 类。
注意:在读取图像 header 之前需将文件倒回。
4. 从 tar 文件中读取
读取图像时需注意模式转换,格式转换并保存图像使用 `save()` 函数,除非指定文件格式,否则文件扩展名即为文件格式。若图片 `mode` 为 RGBA,则需转换格式以避免异常,解决方法为转换图片格式。
示例:创建缩略图
创建缩略图 使用 `Image.thumbnail( size )`,size 为缩略图宽长元组。
剪贴,粘贴、合并图像
使用 Image 类中的方法操作图像中的区域,如通过 `crop()` 方法复制子矩形图像。
示例:从图像复制子矩形
定义 `box` 元组表示图像基于左上角为(0,0)的坐标,`box` 坐标为 (左,上,右,下)。示例中为 300 * 300 像素。
示例:在原图上粘贴子矩形图像
示例:滚动图像
示例:分离和合并通道
Pillow 允许处理图像的各个通道,使用 `split()` 方法分离图像通道,`merge()` 函数合并通道,采用图像的 `mode` 和通道元组为参数。
示例:交换RGB图像的三个波段
示例:调整大小并逆时针旋转 45度
示例:以90度为单位旋转图像
示例:使用 filter()
示例:每个像素点扩大1.2倍
示例:处理单独通道
注意:创建 mask 的语句。
示例:在 mode 之间转换
示例:使用 ImageEnhance 对比度、色彩饱和度、亮度和清晰度的调整
示例:读取动态图像
示例:for 使用 ImageSequence Iterator 类遍历动态图像
示例:保存动态图像
示例:使用 draft() 快速解码图像
输出:生成的图像可能与请求的模式和大小不完全匹配,确保图像不大于给定大小时,应使用缩略图方法。
温馨提示:答案为网友推荐,仅供参考