简介
PIL (Python Imaging Library)
Python图像处理库,该库支持多种文件格式,提供强大的图像处理功能。
使用Image类
PIL中最重要的类是Image类,该类在Image模块中定义。
从文件加载图像:
import Image
im = Image.open("lena.ppm")
如果成功,这个函数返回一个Image对象。现在你可以使用该对象的属性来探索文件的内容。
print im.format, im.size, im.mode
# PPM (512, 512) RGB
format
属性指定了图像文件的格式,如果图像不是从文件中加载的则为None
。
size
属性是一个2个元素的元组,包含图像宽度和高度(像素)。
mode
属性定义了像素格式,常用的像素格式为:“L” (luminance) - 灰度图, “RGB” , “CMYK”。
如果文件打开失败, 将抛出IOError异常。
一旦你拥有一个Image类的实例,你就可以用该类定义的方法操作图像。比如:显示
im.show()
(show()
的标准实现不是很有效率,因为它将图像保存到一个临时文件,然后调用外部工具(比如系统的默认图片查看软件)显示图像。该函数将是一个非常方便的调试和测试工具。)
接下来的部分展示了该库提供的不同功能。
读写图像
PIL支持多种图像格式。从磁盘中读取文件,只需使用Image
模块中的open
函数。不需要提供文件的图像格式。PIL库将根据文件内容自动检测。
如果要保存到文件,使用Image
模块中的save
函数。当保存文件时,文件名很重要,除非指定格式,否则PIL库将根据文件的扩展名来决定使用哪种格式保存。
** 转换文件到JPEG **
import os, sys
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缩略图 **
import os, sys
import Image
size = 128, 128
for infile in sys.argv[1:]:
outfile = os.path.splitext(infile)[0] + ".thumbnail"
if infile