专栏首页python3好玩图像PIL处理

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

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

所以就到这里啦

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 趣味练习- 修改图片

    https://github.com/Yixiaohan/show-me-the-code

    py3study
  • 用python简单处理图片(3):添加水

    py3study
  • python PIL库的使用

    1. open(filename) : 根据参数加载图像文件。建议采用文件的全路径,如下面的文件位于d盘中

    py3study
  • Python类库Pillow实现图片裁剪、缩放、效果增强等功能

    首先,表明一个问题,Pillow和PIL不是一个东西,Pillow 是一个对 PIL 友好的分支,两者的作者是不同的,由于PIL的更新计划太慢了,作者计划一年更...

    申霖
  • Python 趣味练习- 修改图片

    https://github.com/Yixiaohan/show-me-the-code

    py3study
  • python PIL库的使用

    1. open(filename) : 根据参数加载图像文件。建议采用文件的全路径,如下面的文件位于d盘中

    py3study
  • 使用Flutter来完成Uplabs上炫酷的交互

    Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台(现在是全平台)开发高质量原生 UI 的移动 SDK。Flutter 兼...

    用户1907613
  • WordPress中当评论审核通过时候给评论者发邮件

    如果你的WordPress 站点是开启评论审核的,那么如果能让评论者知道TA 的评论是否通过,就能进一步提升“回头率”。Comment Approved就是这么...

    Jeff
  • 【游戏开发】Excel表格批量转换成lua的转表工具

      在上篇博客《【游戏开发】Excel表格批量转换成CSV的小工具》 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用。实际在U...

    马三小伙儿
  • FME基础教程之一(数据处理基础)

    FME是一个很好的数据处理平台,如果想要掌握它,在工作中使用它,需要了解很多的内容。学习一门技术,最好的途径就是通过系统的课程,而FME相关的系列课程比较少。针...

    数据处理与分析

扫码关注云+社区

领取腾讯云代金券