一、PIL库的概述

PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装。

打开cmd,输入

pip install pillow

PIL库支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。

PIL库可以完成图像归档和图像处理两方面功能需求:

a、图像归档:对图像进行批处理、生成图像预览、图像格式转换等

b、图像处理:图像基本处理、像素处理、颜色处理等

二、PIL库Image类解析

1、Image类关于图像读取与创建

方法 说明
Image.open(filename) 加载图像文件
Image.new(mode,size,color) 根据给定参数创建新图像
Image.open(String.IO.StringIO(buffer)) 从字符串中获取图像
Image.frombytes(mode,size,color) 根据像素点创建新图像
Image.verify() 对图像完整性进行检查,返回异常

例如:要加载一个图像文件,最简单如下

 from PIL import Image
im=image.open("C:\\Users\\picture.jpq")

2、4个处理图片的常用属性

方法 说明
Image.format 图像格式或来源,若图像不是从文件读取,则返回None
Image.mode 图像的色彩模式,‘L’为灰度模式,‘RGB'为真彩色图像,’CMYK‘为出版图像
Image.size 图像的宽度和高度,单位是像素(px),返回值为元组类型
Image.palette

调色板属性,返回ImagePalette类型

3、图像转换和保存方法

方法 说明
Image.save(filename,format) 将图像保存为filename文件名,format是文件格式
Image.convert(mode) 使用不同的参数,转换图像为新的模式
Image.thumbnial(size) 创建图像的缩略图,size是缩略图尺寸的二元元组

4、图像的旋转和缩放方法

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

三、图像的过滤和增强

PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法

方法 说明
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 图像的锐化效果
方法 说明
ImageEnhance.enhance(factor) 对所选属性的数值增强factor倍
ImageEnhance.Color(im) 调整图像的颜色平衡
ImageEnhance.Contrast(im) 调整图像的对比度
ImageEnhance.Brightness(im) 调整图像的亮度

ImageEnhance.Sharpness(im)

调整图像的锐度

四、制作GIF

1、语法基础

相关模块  import PIL.image

打开图片 img=Image.open(img_name)

保存图片 img.save(save_name,save_all=True,append_images=imgs,duration=t)

注意:save_all=True设置此项,会保存所有图片对象,否则只保存一张

duration=t  GIF动图的间隔时间

2、代码实现

 import imageio
def create_gif(image_list,gif_name,duration=0.1):
frames=[]
for image_name in image_list:
frames.append(imageio.imread(image_name))
imageio.mimsave(gif_name,frames,'GIF',duration=duration)
return
def main():
image_list=['gif1','gif2','gif3','gif4','gif5','gif6','gif7','gif8','gif9','gif10']
gif_name='cat.gif'
duration=0.1
create_gif(image_list,gif_name,duration)
if __name__=='__main__':
main()

效果如下

PIL库的学习总结及生成GIF的更多相关文章

  1. Python关于PIL库的学习总结与成果展示

    一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. : ...

  2. PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)

    Hello!今天我们来学习一下这个神奇的图片处理的第三方函数库——PIL库 (本blog部分图片及代码来自网络) 这是一个支持图像存储.显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的 ...

  3. PIL库学习及运用

    了解PIL以及安装. 个方面的功能: (1) 图像归档:对图像进行批处理.生产图像预览.图像格式转换等. (2) 图像处理:图像基本处理.像素处理.颜色处理等. 安装PIL在cmd中输入 pip in ...

  4. Python PIL库学习笔记

    1.PIL简介 Python Imaging Library(缩写为PIL)(在新的版本中被称为Pillow)是Python编程语言的开源库,它增加了对打开,操作和保存许多不同图像文件格式的支持.它适 ...

  5. python之pillow模块学习--验证码的生成和破解

    一.基础学习 在Python中,有一个优秀的图像处理框架,就是PIL库,pip install pillow 示例1 from PIL import Image # 读取当前图片 im = Image ...

  6. GEOS库的学习之一:介绍和编译

    对GEOS库的学习,源于一个项目:要在c++中判断二维平面中两个多边形的关系(无论凹凸).也就是判断两个多边形是否相交.相容等.听起来很简单,可实现起来却比较难,而项目又催得紧.于是我去搜索了一下,看 ...

  7. Python 之 使用 PIL 库做图像处理

    http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html Python 之 使用 PIL 库做图像处理 1. 简介. 图像 ...

  8. Numpy库的学习(三)

    今天我们继续学习一下Numpy库的学习 废话不多说 ,开始讲 比如我们现在想创建一个0-14这样一个15位的数组 可以直接写,但是很麻烦,Numpy中就给我们了一个方便创建的方法 numpy中有一个a ...

  9. 纯代码系列:Python实现验证码图片(PIL库经典用法用法,爬虫12306思路)

    现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一.这里就不详细介绍了,相信大家都遇到过. 现在就给出用Python的PIL库实现验证码图片的代码.代码中有详细注释. #!/usr ...

随机推荐

  1. Vertica的这些事(十三)——Vertica备份元数据信息

    ---备份资源池 SELECT 'CREATE RESOURCE POOL ' || name || CASE WHEN memorysize IS NULL THEN ' ' ELSE ' MEMO ...

  2. GO gRPC教程-环境安装(一)

    前言 gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多复用请求等特.这些特性使得其在移动设备上表现更好,更省电 ...

  3. Java中的get()方法和set()方法

    在Java中,为了数据的安全,换句话说就是为了隐藏你的代码的一些实现细节,我们会用private来修饰属性,使用private修饰的属性就不能被其他类直接访问了,想要访问就需要通过set.get方法: ...

  4. eclipse导入项目乱码问题及快键键收集

    1.eclipse导入的项目出现乱码,选择该项目,右键选择最下方的Properties,第一个出现的Resource页面: 在Text file encoding项中,选择other. 目前中文编码主 ...

  5. 1066 Root of AVL Tree (25分)(AVL树的实现)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  6. Spring Web Flow 笔记

    在Spring 中配置 Web Flow <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...

  7. DG磁盘分区提示错误

    文章更新于:2020-02-26 一.当你使用 DG 分区遇到错误时 1.错误复现 2.解决办法 以管理员身份打开cmd 运行 chkdsk /f /x g:(这里的 g 替换成你要检查的盘符) 然后 ...

  8. Springboot2(二)通过微信熟悉熟悉Spring-boot yml配置文件

    前言:Spring-boot的yml配置文件,这里就不在借助人.狗介绍了,试试套下微信! 创建yml文件 值得注意的是下图中有三种命名方法,前两种是对的,且第二种必须是横线而不是下划线! yml文件的 ...

  9. javascript入门 之 zTree (一)

    1.安装: 我用的bower工具,所以执行: bower install ztree 2.详细功能与配制,请考官方文档: http://www.treejs.cn/v3/main.php#_zTree ...

  10. 个人项目 wc.exe

    GitHub地址:https://github.com/oAiuo/wordCount 一.题目描述 Word Count1. 实现一个简单而完整的软件工具(源程序特征统计程序).2. 进行单元测试. ...