前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >好玩图像PIL处理

好玩图像PIL处理

作者头像
py3study
发布2020-01-16 15:52:30
7720
发布2020-01-16 15:52:30
举报
文章被收录于专栏:python3

                 好玩图像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

  引用方法: 

代码语言:javascript
复制
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

图像的锐化效果

  引用方法:

代码语言:javascript
复制
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)

调整图像的锐度

  引用如下: 

代码语言:javascript
复制
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、生成缩略图 

代码语言:javascript
复制
1 from PIL import Image
2 im=Image.open("D:\\我的文件\\Python\\壁纸5.jpg")
3 im.thumbnail((58,58))

 显示如下:                 

代码语言:javascript
复制
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、图像处理

代码如下:

代码语言:javascript
复制
 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、提取图像每一帧

代码语言:javascript
复制
 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、美图秀秀  

代码语言:javascript
复制
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图片

代码语言:javascript
复制
 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

 之后的成果我不知道怎么展示~~~~

所以就到这里啦

感觉自己好酷哦(哈哈哈哈哈哈哈哈哈哈)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •                  好玩图像PIL处理
    • 一、PIL库学习总结
      • 1、PIL中的模块
      • 2、Image类的解释
      • 3、ImageFilter类的解释
      • 4、ImageEnance类的解释
    • 二、图像处理的实例
      • 1、生成缩略图 
      •  3、提取图像每一帧
      • 4、美图秀秀  
      •  5、好玩的gif图片
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档