ImageChops模块包含一些算术图形操作,叫做channel operations(“chops”)。这些操作可用于诸多目的,比如图像特效,图像组合,算法绘图等等。
大多数通道操作只用于8位图像(比如“L”模式和“RGB”模式)。
一、ImageChops模块的函数
大多数通道操作有一个或者两个图像参数,返回一个新的图像。
1、 Constant
定义:constant(image,value) ⇒ image
含义:返回一个和给定图像尺寸一样的一层,该层被给定的像素值填充。
例子:
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>> im02.mode
'RGB'
>>>im02.getpixel((0,0))
(124, 127, 108)
>>> im= ImageChops.constant(im02, 100)
>>>im.mode
'L'
>>>im.getpixel((0,0))
100
>>>im.getpixel((100,100))
100
图像02为“RGB”图像,方法constant()只返回一个层,即图像im模式为“L”,且所有值都为给定的100。
2、 Duplicate
定义:duplicate(image) ⇒ image
含义:返回给定图像的拷贝。
例子:
>>>from PIL import ImageChops
>>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>>im02.mode
'RGB'
>>>im02.getpixel((100,100))
(147, 149, 128)
>>> im = ImageChops.duplicate(im02)
>>>im.mode
'RGB'
>>>im.getpixel((100,100))
(147, 149, 128)
3、 Invert
定义:invert(image) ⇒ image
含义:返回最大值255减去当前值的图像。
例子:
>>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg")
>>>im02.mode
'RGB'
>>>im02.getpixel((100,100))
(147, 1