官网:https://pillow.readthedocs.io/en/5.3.x/handbook/tutorial.html
Python Imaging Library中最重要的类是 Image
类,它在模块中定义,具有相同的名称。您可以通过多种方式创建此类的实例; 通过从文件加载图像,处理其他图像或从头开始创建图像。
要从文件加载图像,请使用模块中的open()
函数Image
:
>>> from PIL import Image
>>> im = Image.open("hopper.ppm")
如果成功,则此函数返回一个Image
对象。您现在可以使用实例属性来检查文件内容:
>>> from __future__ import print_function
>>> print(im.format, im.size, im.mode)
PPM (512, 512) RGB
该format
属性标识图像的来源。如果未从文件中读取图像,则将其设置为“无”。size属性是一个包含宽度和高度(以像素为单位)的2元组。该 mode
属性定义图像中波段的数量和名称,以及像素类型和深度。常见模式是灰度图像的“L”(亮度),真彩色图像的“RGB”和印前图像的“CMYK”。
如果无法打开该文件,IOError
则会引发异常。
获得Image
类的实例后,可以使用此类定义的方法来处理和操作图像。例如,让我们显示刚刚加载的图像:
>>> im.show()
注意
标准版本show()
效率不高,因为它将图像保存到临时文件并调用实用程序来显示图像。如果您没有安装适当的实用程序,它甚至都不起作用。当它工作时,它非常方便调试和测试。
以下部分概述了此库中提供的不同功能。
读写图像
Python Imaging Library支持各种图像文件格式。要从磁盘读取文件,请使用模块中的open()
功能Image
。您无需知道打开文件的文件格式。库根据文件内容自动确定格式。
要保存文件,请使用该类的save()
方法 Image
。保存文件时,名称变得很重要。除非指定格式,否则库使用文件扩展名来发现要使用的文件存储格式。
将文件转换为
from __future__ import print_function
import os, sys
from PIL import Image
for infile in sys.argv[1:]:
f, e = os.path.splitext(infile)
outfile = f + ".jpg"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print("cannot convert", infile)
可以向save()
明确指定文件格式的方法提供第二个参数。如果使用非标准扩展,则必须始终以这种方式指定格式:
创建JPEG缩略图
from __future__ import print_function
import os, sys
from