原标题:使用Python图像处理库Pillow处理图像文件
文/江红 本文来源《Python程序设计与算法基础教程(第2版)-微课版》
本案例通过使用Python图像处理库Pillow,帮助读者进一步了解Python的基本概念:模块、对象、方法和函数的使用。可以对应于教程正文的第2章。
使用Python语言解决实际问题时,往往需要使用由第三方开发的开源Python软件库。
本案例使用图像处理库Pillow中的模块、对象来处理图像:实现读取图像、获取图像信息、调整图像大小、旋转图像、平滑图像、剪切图像等基本图像处理任务。
CS2.1 安装Pillow
Pillow是Python中的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。
Pillow位于Python包索引(PyPI)中,可以使用pip来安装。注意,Anaconda包含了Pillow库。
【例CS.6】使用pip安装Pillow库。
以管理员身份运行命令行提示符,输入命令:pip3 installPillow,安装Pillow库。如图CS-19所示。
图CS-19 使用pip安装Pillow库
CS2.2 打开和显示图像
Pillow库包含几十个模块,组织在名为PIL的包中。PIL包中的一个模块是Image。PIL.Image提供了一些包括从文件中加载图像和创建新图像的函数,其中的Image用于表示图像对象。
【例CS.7】打开和显示图像。
使用PIL.Image模块的open函数可以打开一个图像,返回一个图像对象,然后调用图像对象的show方法,可以在屏幕上显示图像。
>>> importPIL; from PIL import Image
>>> im= PIL.Image.open("c:/pythonpa/cs/img/mandrill.jpg")
>>>im.show
>>>print(im.format, im.size, im.mode) #显示图像的格式、大小和模式信息
JPEG (298, 298)RGB
说明:
(1)im.format返回包含图像格式的字符串(JPEG、GIF、TIFF、BMP、PNG、…)。
(2)im.size返回包含图像宽度和高度的元组,单位为像素。与每个像素相关的是一对坐标(i, j),用于标识像素的列i和行j。列从左到右编号,从0开始;行从上到下编号,也从0开始。
(3)im.mode返回包含图像模式的字符串(RGB、CYMK、Grayscale、…)。
CS2.3图像的基本操作
图像对象的copy方法用于拷贝图像;crop方法用于剪裁图像;paste方法用于将一个图像粘贴(覆盖)在另一个图像上面;resize方法用于调整图像大小;rotate方法用于旋转和翻转图像;filter方法用于图像过