导入Image类
from PIL import Image打开图片
im = Image.open('1.jpg') #确保存在1.jpg这张图片,否则会出错创建图片
im = Image.new(mode, size, color=0) #图片模式,大小和颜色显示图片
im.show() #此处show的图片并非1.jpg,show显示内存中的图片图片宽度
im.width图片高度
im.height图片大小
im.size # 返回一个二元组(im.width, im.height)图片格式
im.format # 返回图片的格式(bmp,jpeg......)图片模式
im.mode #L为灰度图,RGB为真彩色,CMYK为pre-press图像存储图片
im.save('路径/文件名.图片格式') #图片格式可以是任意的图片复制
s = im.copy() #copy函数返回一个image对象,不赋给s无法使用图片旋转
s = im.rotate(angle, resample=0, expand=0)#第二个参数可不管,第一个参数表示逆时针旋转的角度,第三个参数(True or False)表示旋转后图片大小是否适应旋转角度(False的话可能导致旋转后图片被裁剪)图片置换
s = im.transpose(method) #注意这也返回了一个新的对象#method有6个值,可用数字0-5,也可用Image.FLIP_LEFT_RIGHT、Image.FLIP_TOP_BOTTOM、Image.ROTATE_90、Image.ROTATE_180、Image.ROTATE_270、Image.TRANSPOSE。分别表示将图片左右对称处理、上下对称处理、逆时针旋转90度、逆时针旋转180度、逆时针旋转270度、图片转置(像素矩阵的转置) 创建缩略图
im.thumbnail(size, resample=3)#size为二元组,resample可不管改变大小
s = im.resize(size, resample=0) #注意与thumbnail的区别,thumbnail直接改变原图,resize返回了一个新的对象。用thumbnail时创建的图像与原图是相似的,且以size中较小的为准,而resize会改变原图比例,返回一个size大小的图片
裁剪图像
box = im.copy() #直接复制图像
box = (100, 100, 400, 400) #定义裁剪的左上右下边界
re = im.crop(box) #按边界裁剪im,并将其赋给re
粘贴(合并)图片
re = re.rotate(180) #将裁剪得到的re逆时针旋转180度 im.paste(re, box) #将re与原图im在box区域重合#此处box参数也可为二元tuple,指定im粘贴位置的左上角坐标 #当box参数为四元tuple时,请确保box与re大小一致
模式转换
t = im.convert(mode) #将im转换成想要的模式
应用filters
from PIL import ImageFilter s = im.filter(ImageFilter.DETAIL) #这一滤镜增强了细节显示
像素点处理
s = im.point(lambda i : i*2) #将im的每一像素点值放大两倍 s = im.point(lambda i : i if i < 100 else i*2) #Python里没有 bool ? r1:r2这一三元表达式,但有r1 if bool else r2
分离单通道
r,g,b = im.split() #将im分离成RGB三个通道