既然知道了 Pillow 中颜色和坐标的工作方式,就让我们用 Pillow 来处理图
像。图 17-3 中的图像将用于本章中所有交互式环境的例子。你可以从 http://nostarch. com/automatestuff/下载它。
将图像文件 Zophie.png 放在当前工作目录中,你就可以将 Zophie 的图像加载到Python 中,像这样:
>>> from PIL import Image
>>> catIm = Image.open('zophie.png')
要加载图像,就从 Pillow 导入 Image 模块,并调用 Image.open(),传入图像的文件名。然后,可以将加载图像保存在 CatIm 这样的变量中。Pillow 的模块名称是
PIL,这保持与老模块 Python Imaging Library 向后兼容,这就是为什么必须 from PIL import Image,而不是 from Pillow import
Image。由于 Pillow 的创建者设计 Pillow 模块的方式,你必须使用 from PIL import Image 形式的 import 语句,而不是简单地 import PIL。
如果图像文件不在当前工作目录,就调用 os.chdir()函数,将工作目录变为包含图像文件的文件夹。
>>> import os
>>> os.chdir('C:\\folder_with_image_file')
Image.open()函数的返回值是 Image 对象数据类型,它是 Pillow 将图像表示为 Python 值的方法。可以调用
Image.open(),传入文件名字符串,从一个图像文件(任何格式)加载一个 Image 对象。通过 save()方法,对 Image
对象的所有更改都可以保存到图像文件中(也是任何格式)。所有的旋转、调整大小、裁剪、绘画和其他图像操作,都通过这个 Image 对象上的方法调用来完成。
为了让本章的例子更简短,我假定你已导入了 Pillow 的Image 模块,并将 Zophie的图像保存在变量 catIm 中。要确保 zophie.png 文件在当前工作目录中,让
Image.open()函数能找到它。否则,必须在 Image.open()的字符串参数中指定完整的绝对路径。