1.安装pillow库:

在cmd下,输入简单的命令: pip install pillow  即可安装pillow库。

2.PIL库的简介:

  1. PIL库主要有2个方面的功能:

  (1) 图像归档:对图像进行批处理、生产图像预览、图像格式转换等。

  (2) 图像处理:图像基本处理、像素处理、颜色处理等。

  2. PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。

3.使用库函数Image类 —— 基本图像处理

1. 调用Image类

  调用方法:from PIL import Image

2. Image类关于图像读取与创建

  

Image.open(filename)

加载图像文件

Image.new(mode,size,color)

根据给定参数创建新图像

Image.open(StringIO.StringIO(buffer))

从字符串中获取图像

Image.frombytes(mode,size,color)

根据像素点创建新图像

Image.verify()

对图像完整性进行检查,返回异常

4. Image类的常用属性

方法

说明

Image.format

图像格式或来源,若图像不是从文件读取,返回None

Image.mode

图像的色彩模式,’L’为灰度模式,’RGB’为真彩色图像,’C(青)M(品红)Y(黄)K(黑)’为出版图像

Image.size

图像的宽度和高度,单位是像素(px),返回值为元组类型

Image.palette

调色板属性,返回ImagePalette类型

5.Image类的序列图像操作方法

方法

说明

Image.seek(frame)

跳转并返回图像中的指定帧

Image.tell()

返回当前帧的序号

6.Image类的图像旋转和缩放方法

方法

说明

Image.resize(size)

返回按size大小调整图像的副本

Image.rotate(angle)

返回按angle角度旋转图像的副本

7.Image类的图像转换和保存方法

方法

说明

Image.save(filename,format)

将图像保存为filename文件名,format格式

Image.convert(mode)

将图像转换为mode模式

Image.thumbnail(size)

创建图像的缩略图,size是缩略图尺寸的元组

代码如下:

# -*- encoding:utf-8 -*-
''' 改变颜色 --- 颜色反转'''
from PIL import Image
nest = Image.open("D:\\靓女.jpeg")
r,g,b = nest.split() #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
nest1 = Image.merge(nest.mode,(b,g,r))
nest1.thumbnail((400,254)) #创建缩略图
nest1.save("D:\\小狗.jpeg")

效果如下显示:

原图:

效果图:

8.Image类的图像像素和通道处理方法

方法

说明

Image.point(func)

根据函数func的功能对每个元素进行运算,返回图像副本

Image.split()

根据GRB图像的每个颜色通道,返回图像副本

Image.merge(mode,bands)

合成通道,其中mode为色彩,bands为新的色彩通道

Image.blend(im1,im2,alpha)

将2张图片im1和im2按照公式插值后生成新图像

公式:im1*(1.0 - alpha) + im2*alpha

4、使用库函数ImageFilter类 —— 图像过滤

  1.调用ImageFilter类:

      from PIL import ImageFilter

  2. ImageFilter类预定义图像过滤方法

方法

说明

ImageFilter.BLUR

图像的模糊效果

ImageFilter.CONTOUR

图像的轮廓效果

ImageFilter.DETAIL

图像的细节效果

ImageFilter.EDGE_ENHANCE

图像的边界加强效果

ImageFilter.EDGE_ENHANCE_MORE

图像的阈值边界加强效果

ImageFilter.EMBOSS

图像的浮雕效果

ImageFilter.FIND_EDGES

图像的边界效果

ImageFilter.SMOOTH

图像的平滑效果

ImageFilter.SMOOTH_MORE

图像的阈值平滑效果

ImageFilter.SHARPEN

图像的锐化效果

继续用例子说明:代码如下:

# -*- encoding:utf-8 -*-
''' 轮廓效果 --- 素描 '''
from PIL import Image
from PIL import ImageFilter
square = Image.open("D:\\小车.jpg")
square1 = square.filter(ImageFilter.CONTOUR) #选择轮廓效果
square1.save("D:\\小车.jpg")

原图:

效果图片:

5、使用库函数ImageEnhance类 —— 图像增强

  2.ImageEnhance类图像增强与滤镜方法

方法

说明

ImageEnhance.enhance(factor)

对所选属性的数值增强factor倍

ImageEnhance.Color(im)

调整图像的颜色平衡

ImageEnhance.Contrast(im)

调整图像的对比度

ImageEnhance.Brightness(im)

调整图像的亮度

ImageEnhance.Sharpness(im)

调整图像的锐度

例子三:代码如下:

# -*- encoding:utf-8 -*-
''' 亮度增强 --- 曝光 '''
from PIL import Image
from PIL import ImageEnhance
gz = Image.open("D:\\gz.jpg")
gz1 = ImageEnhance.Brightness(gz) #选择亮度
gz1.enhance(2).save("D:\\gz1.jpg") #将亮度增强2倍后保存

原图:

效果如下:

例子4:gif图片

代码如下:

# -*- encoding:utf-8 -*-
''' 制作GIF图 '''
import imageio
savename = "D:\\my.gif"
#准备制作的图像名称
filenames = ["D:\\72.png","D:\\33.png","D:\\55.png","D:\\菜3.png","D:\\蔡徐坤2.png","D:\\表情.jpg","D:\\小狗.jpg"]
frames = []
for name in filenames:
frames.append(imageio.imread(name))
imageio.mimsave(savename,frames,'GIF',duration=1)

gif图如下:

最新文章

  1. Oracle 10g安装教程
  2. 手机端页面rem自适应脚本
  3. Windows下ADT环境搭建
  4. 驱动编程:NtReadVirtualMemory
  5. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束
  6. python 返回函数
  7. OpenGL EXT: shader_buffer_load
  8. (转)A Beginner's Guide To Understanding Convolutional Neural Networks
  9. WPF 之 线程使用
  10. codeforces A. Jeff and Rounding (数学公式+贪心)
  11. QS Network
  12. php开发中将远程图片本地化的方法
  13. 使用Docker
  14. 黑窗口输入确定数字弹MessageBox(VirtualProtect())
  15. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Khamovniki
  16. lvm基本管理
  17. Study 7 —— while循环中止语句
  18. MyEclipse中如何配置默认jsp为UTF-8格式
  19. Shell中的IFS
  20. react-navigation实现页面框架(转载)

热门文章

  1. TensorFlow初探之简单神经网络训练mnist数据集(TensorFlow2.0代码)
  2. Vue打包报错Unexpected token: punc(()解决方案
  3. [Kafka] |FAIL|rdkafka#producer-1 : Receive failed: Disconnected
  4. MATLA总结三
  5. tarjan求强连通分量
  6. 阿里巴巴 Weex
  7. 多功能网页刷新工具,刷pv工具
  8. Game Engine Architecture 8
  9. 连接HTTP服务器
  10. 解决time_wait过多