pil库的介绍与应用
PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储、显示和处理,能够处理几乎所有格式的图片。
一、PIL库简介
1. PIL库主要有2个方面的功能:
(1) 图像归档:对图像进行批处理、生产图像预览、图像格式转换等。
(2) 图像处理:图像基本处理、像素处理、颜色处理等。
2. PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。
二、使用库函数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() |
对图像完整性进行检查,返回异常 |
3. Image类的常用属性:
|
方法 |
说明 |
|
Image.format |
图像格式或来源,若图像不是从文件读取,返回None |
|
Image.mode |
图像的色彩模式,’L’为灰度模式,’RGB’为真彩色图像,’C(青)M(品红)Y(黄)K(黑)’为出版图像 |
|
Image.size |
图像的宽度和高度,单位是像素(px),返回值为元组类型 |
|
Image.palette |
调色板属性,返回ImagePalette类型 |

4.Image类的序列图像操作方法:
|
方法 |
说明 |
|
Image.seek(frame) |
跳转并返回图像中的指定帧 |
|
Image.tell() |
返回当前帧的序号 |

5.Image类的图像旋转和缩放方法:
|
方法 |
说明 |
|
Image.resize(size) |
返回按size大小调整图像的副本 |
|
Image.rotate(angle) |
返回按angle角度旋转图像的副本 |

6.Image类的图像转换和保存方法:
|
方法 |
说明 |
|
Image.save(filename,format) |
将图像保存为filename文件名,format格式 |
|
Image.convert(mode) |
将图像转换为mode模式 |
|
Image.thumbnail(size) |
创建图像的缩略图,size是缩略图尺寸的元组 |

from PIL import Image
im = Image.open("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")
r,g,b = im.split() #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
im1 = Image.merge(im.mode,(b,g,r))
im1.thumbnail((400,254)) #创建缩略图
im1.save("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")

改变颜色,图对比如下:


7.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 |
三、使用库函数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 |
图像的锐化效果 |
from PIL import Image
from PIL import ImageFilter
square = Image.open("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")
square1 = square.filter(ImageFilter.CONTOUR) #选择轮廓效果
square1.save("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")
轮廓效果-素描
图对比如下:

四、使用库函数ImageEnhance类 —— 图像增强
1. 调用ImageEnhance类
from PIL import ImageEnhance
2.ImageEnhance类图像增强与滤镜方法
|
方法 |
说明 |
|
ImageEnhance.enhance(factor) |
对所选属性的数值增强factor倍 |
|
ImageEnhance.Color(im) |
调整图像的颜色平衡 |
|
ImageEnhance.Contrast(im) |
调整图像的对比度 |
|
ImageEnhance.Brightness(im) |
调整图像的亮度 |
|
ImageEnhance.Sharpness(im) |
调整图像的锐度 |
|
1
2
3
4
5
|
from PIL import Imagefrom PIL import ImageEnhancegz = Image.open("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")gz1 = ImageEnhance.Brightness(gz) #选择亮度gz1.enhance(2).save("C:\\Users\\XXQ20180829\\Desktop\\2.jpg") #将亮度增强2倍后保存 |
亮度增强,曝光
![]()
GIF的制作

import imageio
savename = "D:\\猫猫.gif"
filenames = ["D:\\1.png","D:\\2.png","D:\\3.png","D:\\4.png"]
frames = []
for name in filenames:
frames.append(imageio.imread(name))
imageio.mimsave(savename,frames,'GIF',duration=1)


pil库的介绍与应用的更多相关文章
- PIL库 (Pillow)
PIL基础 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
- python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
- 纯代码系列:Python实现验证码图片(PIL库经典用法用法,爬虫12306思路)
现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一.这里就不详细介绍了,相信大家都遇到过. 现在就给出用Python的PIL库实现验证码图片的代码.代码中有详细注释. #!/usr ...
- 玩转PIL库
1.安装pillow库: 在cmd下,输入简单的命令: pip install pillow 即可安装pillow库. 2.PIL库的简介: 1. PIL库主要有2个方面的功能: (1) 图像归档: ...
- PIL库的运用
PIL库学习及运用 1.库的介绍Python Imaging Library,简称PIL python图像处理库,这个库支持多种文件格式,并提供了强大的图像处理和图形处理能力. 下面是我的学习笔记 首 ...
- Python之PIL库的运用、GIF处理
一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...
- Python之PIL库的运用、GIF处理h
一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...
- 运用PIL库 用来美白,磨皮,瘦脸等操作!
1.安装pillow库: 在cmd下,输入简单的命令: pip install pillow 即可安装pillow库. 2.PIL库的简介: 1. PIL库主要有2个方面的功能: (1) 图像归档: ...
- 快乐python 零基础也能P图 —— PIL库
Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. ...
随机推荐
- laravel 修改时邮箱字段唯一性验证时忽略指定 ID
- 寒假作业pta1
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两行符 ...
- Introducing Outflux: a smart way out of InfluxDB
转自:https://blog.timescale.com/migrate-outflux-a-smart-way-out-of-influxdb/ Migrate your workload fro ...
- 超详细SQLMap使用攻略及技巧分享
sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限.它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数 ...
- imp 导入以及换用户报错
数据库导入操作:SQL> create user user identified by passwd; SQL> create tablespace user datafile '/dat ...
- Tornado异步非阻塞的使用以及原理
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado ...
- java 身份证工具类
package com.app.wx.common.util; import org.apache.commons.lang3.StringUtils; import java.text.ParseE ...
- WinHTTrack Website Copier使用说明
WinHTTrack Website Copier使用说明 WinHTTrack Website Copier可以抓取整个网站或者某个网页.某个论坛帖子.以抓取论坛某个主题帖子为例: 1.打开WinH ...
- Unity Input,生命周期,Light,获取组件
1. 递归方法遍历获取指定子物体 知识点:递归的使用:transform.childCount.GetChild(index) 2. Input输入控制类,检测玩家输入 知识点: Input ...
- axublogcms1.1.0 Getshell
axublogcms1.1.0 Getshell 代码执行漏洞 现在最新版是1.1.0 今天重新审计了下 axublogcms1.0.6 ,发现一处计较鸡肋的漏洞,因为并不是只有1.0.6版本存在 ...

