im.palette ⇒ palette or None
颜色调色板表格。如果图像的模式是“P”,则返回ImagePalette类的实例;否则,将为None。
如下为对非“P”模式下的图像进行palette信息显示。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
print(im.palette)
易知,返回值为空,none
对图像进行convert操作,转换成“P”模式
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
new\_im = im.convert('P')
print(new\_im.mode)
print(new\_im.palette)
则返回值为ImagePalette类的实例。如下:
Info类
im.info ⇒ dictionary
存储图像相关数据的字典。文件句柄使用该字典传递从文件中读取的各种非图像信息。大多数方法在返回新的图像时都会忽略这个字典;因为字典中的键并非标准化的,对于一个方法,它不能知道自己的操作如何影响这个字典。如果用户需要这些信息,需要在方法open()返回时保存这个字典。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
print(im.info)
new类
Image.new(mode,size) ⇒ image
Image.new(mode, size,color) ⇒ image
使用给定的变量mode和size生成新的图像。Size是给定的宽/高二元组,这是按照像素数来计算的。对于单通道图像,变量color只给定一个值;对于多通道图像,变量color给定一个元组(每个通道对应一个值)。在版本1.1.4及其之后,用户也可以用颜色的名称,比如给变量color赋值为“red”。如果没有对变量color赋值,图像内容将会被全部赋值为0(为黑色)。如果变量color是空,图像将不会被初始化,即图像的内容全为0。这对向该图像复制或绘制某些内容是有用的。
如下为将图像设置为128x128大小的红色图像。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
n\_im= Image.new("RGB", (128, 128), "#FF0000")
n\_im.show()
显示效果如下:
如下图像为128x128大小的黑色图像,因为变量color不赋值的话,图像内容被设置为0,即黑色。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
n\_im= Image.new("RGB", (128, 128))
n\_im.show()
图像为128x128大小的绿色图像。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
n\_im= Image.new("RGB", (128, 128),"green")
n\_im.show()
Copy类
im.copy() ⇒ image
拷贝这个图像。如果用户想粘贴一些数据到这张图,可以使用这个方法,但是原始图像不会受到影响。
from PIL import Image
im = Image.open("E:\mywife.jpg")
im_copy = im.copy()
图像im_copy和im完全一样。
Crop类
im.crop(box) ⇒ image
从当前的图像中返回一个矩形区域的拷贝。变量box是一个四元组,定义了左、上、右和下的像素坐标。用来表示在原始图像中截取的位置坐标,如**box(100,100,200,200)**就表示在原始图像中以左上角为坐标原点,截取一个100*100(像素为单位)的图像,为方便理解,如下为示意图box(b1,a1,b2,a2)。作图软件为Visio2016。这是一个懒操作。对源图像的改变可能或者可能不体现在裁减下来的图像中。为了获取一个分离的拷贝,对裁剪的拷贝调用方法load()。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
box = (300, 100, 700, 700) ##确定拷贝区域大小
region = im.crop(box) ##将im表示的图片对象拷贝到region中,大小为box
region.show()
如下图为box截取的图像区域显示。
Paste类
im.paste(image,box)
将一张图粘贴到另一张图像上。变量box或者是一个给定左上角的2元组,或者是定义了左,上,右和下像素坐标的4元组,或者为空(与(0,0)一样)。如果给定4元组,被粘贴的图像的尺寸必须与区域尺寸一样。如果模式不匹配,被粘贴的图像将被转换为当前图像的模式。
@zhangziju
from PIL import Image
im = Image.open("E:\mywife.jpg")
box=[0,0,100,100]
im_crop = im.crop(box)
print(im_crop.size,im_crop.mode)
im.paste(im_crop, (100,100)) ##(100,100,0,0)
im.paste(im_crop, (400,400,500,500))
im.show()
如下图为paste操作:
Filter类
im.filter(filter) ⇒ image
返回一个使用给定滤波器处理过的图像的拷贝。具体参考图像滤波在ImageFilter 模块的应用,在该模块中,预先定义了很多增强滤波器,可以通过filter( )函数使用,预定义滤波器包括:BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH