from PIL import Image #图像过滤处理 ''' 对图像进行过滤处理需要获取图像的像素值。图像的像素值可以通过Image类的getdata 方法和getpixel方法获得。所得到的像素信息在数值上是以0 -255的整数表示, 按照R (红色)、G (绿色)、B (蓝色)的顺序依次排列,整体作为-一个元组。下面 的源代码展示了打开当前目录下python.jpg的文件,将该图像的像素进行取反后,保 存为python_ filter.jpg的功能。 getdata方法返回一个能够访问图像所有像素的迭代器。在本例中就是取出每一 个像素并进行取反(用255减去该值)。当所有像素值取值完毕后,使用putdata方法 将原本Image类对象保存的像素值进行替换。该源代码运行输出后的图像如下所示。 ''' def main(): #获取打开图片 image=Image.open('python.png') buffer=[] for pixel in image.getdata(): buffer.append(( 255 - pixel[0], 255 - pixel[1], 255 - pixel[2],)) image.putdata(buffer) image.save('python_filter.jpg') if __name__ == '__main__': main()