Python 图像处理 Pillow 库 基础篇

如题所述

图像处理是常用的技术,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() 快速解码图像

输出:生成的图像可能与请求的模式和大小不完全匹配,确保图像不大于给定大小时,应使用缩略图方法。
温馨提示:答案为网友推荐,仅供参考
相似回答