好玩图像PIL处理
好玩图像pil处理
一、pil库学习总结
1、pil中的模块
image模块、imagechops模块、imagecrackcode模块、imagedraw模块、imageenhance模块、imagefile模块、imagefileio模块、imagefilter模块、imagefont模块、imagegrab模块、imageops模块、imagepath模块、imagesequence模块、imagestat模块、imagetk模块、imagewin模块、psdraw模块。最常用模块为image模块、imagefilter模块、imageenhance模块。
2、image类的解释
image类的图像读取和创建方法
方法 | 描述 |
image.open(filename) | 根据参数加载图像文件 |
image.new(mode,size,color) | 根据给定参数创建一个新的图像 |
image.open(stringio.stringio(buffer)) | 从字符串中获取图像 |
image.frombytes(mode,size,data) | 根据像素点data创建图像 |
image.veify() | 对图像文件完整性进行检查,返回异常 |
image类的常用属性
属性 | 描述 |
image.format | 标识图像格式或来源,如果图形不是从文件读取,值为none |
image.mode | 图形的色彩模式,"l"为灰度图像,"rgb"为真彩色图像,"cmyk"为出版图像 |
image.size | 图像高度与宽度,单位是像素(px),返回值是二元元组(tuple) |
image.palette | 调色板属性,返回一个imagepalette类型 |
image类的序列图像操作方法
方法 | 描述 |
image.seek(frame) | 跳转并返回图像中的指定帧 |
image.tell() | 返回当前帧的序号 |
image类的图像转换和保存方法
方法 | 描述 |
image.save(filename,format) | 将图像保存为filename文件名,format是图片格式 |
image.convert(mode) | 使用不同的参数,转换图像为新的模式 |
image.thumbnail(size) | 创建图像的缩略图,size是缩略图尺寸的二元元组 |
image类的图像旋转与缩放方法
方法 | 描述 |
image.resize(size) | 按size大小调整图像,生成副本 |
image.rotate(angle) | 按angle角度旋转图像,生成副本 |
image类的图像像素和通道处理方法
方法 | 描述 |
image.piont(func) | 根据函数func的功能对每个元素进行运算,返回图像副本 |
image.split() | 提取rgb图像的每个图形通道,返回图像副本 |
image.merge(mode,bands) | 合并通道,其中mode表示色彩,bands表示新的色彩通道 |
image.blend(im1,im2,alpha) |
将两幅图片im1和im2按照如下公式插值后生成新的图像: im1*(1.0-alpha)+im2*alpha |
引用方法:
1 from pil import image 2 im=image.open("d:\\我的文件\\python\\壁纸3.jpg") 3 im.thumbnail((158,158)) 4 om.save("d:\\我的文件\\python\\壁纸5.jpg")
3、imagefilter类的解释
imagefilter类的预定义过滤方法
方法表示 | 描述 |
imagefilter.bluk | 图像的模糊效果 |
imagefilter.contour | 图像的轮廓效果 |
imagefilter.detail | 图像的细节效果 |
imagefilter.edge_enhance | 图像的边界加强效果 |
imagefilter.edge_enhance_more | 图像的阔值边界加强效果 |
imagefilter.emboss | 图像的浮雕效果 |
imagefilter.find_edges | 图像的边界效果 |
imagefilter.smooth | 图像的平滑效果 |
imagefilter.smooth_more | 图像的阔值平滑效果 |
imagefilter.sharpen | 图像的锐化效果 |
引用方法:
1 from pil import imagefilter 2 im=image.open("d:\\我的文件\\python\\壁纸5.jpg") 3 om=im.filter(imagefilter.contour) 4 om.save("d:\\我的文件\\python\\壁纸2.jpg") 5 om=im.filter(imagefilter.emboss) 6 om.save("d:\\我的文件\\python\\壁纸1.jpg")
4、imageenance类的解释
imageenhance类的图像增强和滤镜方法
方法 | 描述 |
imageenhance.enhance(factor) | 对选择的属性增强factor倍 |
imageenhance.color(im) | 调整图像的颜色平衡 |
imageenhance.contrast(im) | 调整图像的对比度 |
imageenhance.brightness(im) | 调整图像的亮度 |
imageenhance.sharpness(im) | 调整图像的锐度 |
引用如下:
1 from pil import image 2 from pil import imageenhance 3 im=image.open("d:\\我的文件\\python\\壁纸4.jpg") 4 om=imageenhance.contrast(im) #调整图像的对比度 5 om.enhance(20).save("d:\\我的文件\\python\\壁纸7.jpg") 6 om=imageenhance.sharpness(im) #调整图像的锐度 7 om.enhance(20).save("d:\\我的文件\\python\\壁纸6.jpg")
二、图像处理的实例
1、生成缩略图
1 from pil import image 2 im=image.open("d:\\我的文件\\python\\壁纸5.jpg") 3 im.thumbnail((58,58))
显示如下:
1 from pil import image 2 im=image.open("d:\\我的文件\\python\\壁纸3.jpg") 3 im.thumbnail((158,158))
4 om.save("d:\\我的文件\\python\\壁纸5.jpg")
显示如下:
2、图像处理
代码如下:
1 from pil import image 2 from pil import imagefilter 3 im=image.open("d:\\我的文件\\python\\壁纸5.jpg") 4 im.thumbnail((158,158)) 5 om.save("d:\\我的文件\\python\\壁纸5.jpg") 6 r,g,b=im.split() 7 om=image.merge("rgb",(b,g,r)) 8 om.save("d:\\我的文件\\python\\壁纸3.jpg") 9 om=im.filter(imagefilter.contour) 10 om.save("d:\\我的文件\\python\\壁纸2.jpg") 11 om=im.filter(imagefilter.emboss) 12 om.save("d:\\我的文件\\python\\壁纸1.jpg")
显示如下:
3、提取图像每一帧
1 from pil import image 2 #from pil import imagefilter 3 im=image.open("d:\\我的文件\\python\\动图.gif") 4 try: 5 im.save('picframe{:02d}.png'.format(im.tell())) 6 while true: 7 im.seek(im.tell()+1) 8 im.save('picframe{:02d}.png'.format(im.tell())) 9 except: 10 print("处理结束")
4、美图秀秀
1 from pil import image 2 from pil import imageenhance 3 im=image.open("d:\\我的文件\\python\\壁纸4.jpg") 4 om=imageenhance.contrast(im) #调整图像的对比度 5 om.enhance(20).save("d:\\我的文件\\python\\壁纸7.jpg") 6 om=imageenhance.sharpness(im) #调整图像的锐度 7 om.enhance(20).save("d:\\我的文件\\python\\壁纸6.jpg") 8 om=imageenhance.brightness(im) #调整图像的亮度 9 om.enhance(1).save("d:\\我的文件\\python\\壁纸8.jpg")
结果如下:
5、好玩的gif图片
1 from pil import image 2 import os #第一步 获得所有图像文件列表,过滤不需要扩展名 3 filelist = [] 4 path = os.getcwd() 5 files = os.listdir("d:\\我的文件\\python") 6 for f in files: 7 if(os.path.isfile(path + '/' + f)): 8 if (os.path.splitext(f)[1] == ".bmp"): 9 filelist.append(f) 10 if (os.path.splitext(f)[1] == ".jpg"): 11 filelist.append(f) 12 if (os.path.splitext(f)[1] == ".png"): 13 filelist.append(f) 14 if (os.path.splitext(f)[1] == ".tif"): 15 filelist.append(f) #第二步 当判断文件不是gif格式的时候转换为gif格式 16 for infile in filelist: 17 outfile = os.path.splitext(infile)[0] + ".gif" 18 if infile != outfile: 19 try: 20 image.open(infile).save(outfile) 21 print("covert to gif successfully!") 22 except ioerror: 23 print("this format can not support!") 24 infile
之后的成果我不知道怎么展示~~~~
所以就到这里啦
感觉自己好酷哦(哈哈哈哈哈哈哈哈哈哈)
上一篇: 利用js调用后台php进行数据处理原码
下一篇: 完颜宗翰为什么会被憋死?实在令人唏嘘