一、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. 1046 Shortest Distance (20分)

    The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed t ...

  2. Redis 笔记(六)—— ZSET 常用命令

    常用命令 命令 用例和描述 ZADD ZADD key-name score member [score member ...] —— 将带有分值的成员添加到 HSET 中 ZREM ZREM key ...

  3. LeetCode | 136. 只出现一次的数字Ⅰ Ⅱ

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...

  4. shell编写一个批量添加用户脚本

                                                          shell编写一个批量添加用户脚本 5.1问题 本例要求在虚拟机server0上创建/roo ...

  5. javascript入门 之 ztree (十 checkbox选中事件)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeCheck / onCheck< ...

  6. Linux 系统篇(一)

    退出当前程序    quit 填充代码:    tab键 中断当前操作:    ctrl + c 键盘输入结束    ctrl + d 关机        shutdown 重启        reb ...

  7. 34.3 转换流 InputStreamReader OutStreamReader

    转换流: 把字节输出流转换成字符输出流 标准输入输出流:传输的对象是字节流 System.in . System.out 标准输入输出流 public static final InputStream ...

  8. 10.6 IoStudentManager

    package day11_io_student.student_demo; public class Student { private String id; private String name ...

  9. hadoop(十)hdfs上传删除文件(完全分布式七)|12

    集群测试 上传小文件到集群,随便选择一个小文件上传到hdfs的根目录 [shaozhiqi@hadoop102 hadoop-3.1.2]$ bin/hdfs dfs -put wcinput/wc. ...

  10. Linux C++ 网络编程学习系列(3)——多路IO之poll实现

    poll实现多路IO 源码地址:https://github.com/whuwzp/linuxc/tree/master/poll 源码说明: server.cpp: 监听127.1:6666,功能是 ...