PIL中效率的改善主要来自于Image模块中的load函数,这个函数是在PIL 1.1.6版本中新增加的,相比于原来的getpixel与putpixel函数,主要的目的就是通过提供图像的缓存操作对象,提高对图像数据读写操作的效率。
这里可以通过一个简单的示例对比两种操作方式的差异,首先打开一个图片文件,同时创建一个相同大小的图片,然后将原始图片的数据逐像素的拷贝到新的图片中,代码如下。该代码在我的机器上运行,对于图像分辨率为2048*1536的图片,只需要5秒钟,而如果采用getpixel与putpixel函数实现(循环体中注释掉的代码),则需要25秒钟,可见load函数对于效率改善非常明显。
import
Image
import ImageFilter
ima = Image.open(
import ImageFilter
ima = Image.open(