一.PIL库简介

PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、折叠以及像图片添加线条、图像和文字等操作。

1.PIL库主要可以实现图像归档和图像处理两方面功能需求

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

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

二.PIL库的子库(共21个)

现仅选取Image类、ImageFilter类与ImageEnhance类进行介绍。

1.Image类

1.1 Image类的图像读取与创建

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

现在通过如下代码:

 from PIL import Image
im=Image.open('C:\\Users\\HJY\\Desktop\\five.jpg') #读取图片
im.show() #展示图片

然后用系统自带图片处理器展示图片:

1. 2 Image类的常用属性:

方法

说明

Image.format

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

Image.mode

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

Image.size

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

Image.palette

调色板属性,返回ImagePalette类型

1.3 Image类的图像转换和保存方法:

方法

说明

Image.save(filename,format)

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

Image.convert(mode)

将图像转换为mode模式

Image.thumbnail(size)

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

尝试做图像的缩略图,输入如下代码:

 from PIL import Image
im=Image.open('C:\\Users\\HJY\\Desktop\\five.jpg')
im.thumbnail((128,128))
im.save("minifive","PNG")

结果:(超小的)

1.4 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

现在我尝试交换图像中的颜色,输入如下代码:

 from PIL import Image
im=Image.open('C:\\Users\\HJY\\Desktop\\five.jpg')
r,g,b=im.split()
om=Image.merge("RGB",(b,g,r))
om.save('fivebgr.jpg')

原图——新图

     (哈哈,有些可怕)

2.ImageFilter类(图像的过滤)

2.1 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
im=Image.open('C:\\Users\\HJY\\Desktop\\five.jpg')
om=im.filter(ImageFilter.CONTOUR)
om.save('fiveCONTOUR.png')

轮廓版图像:

3.ImageEnhance类(图像增强)

3.1 ImageEnhance类图像增强与滤镜方法

方法

说明

ImageEnhance.enhance(factor)

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

ImageEnhance.Color(im)

调整图像的颜色平衡

ImageEnhance.Contrast(im)

调整图像的对比度

ImageEnhance.Brightness(im)

调整图像的亮度

ImageEnhance.Sharpness(im)

调整图像的锐度

在这就不展示了,大家自己尝试一下吧~

三、GIF

我选取一个gif对它进行分解

输入代码:

 from PIL import Image
im=Image.open('D:\\kaixin.gif')
try:
im.save('picframe{:02d}.png'.format(im.tell()))
while True:
im.seek(im.tell()+1)
im.save('picframe{:02d}.png'.format(im.tell()))
except:
print("处理结束")

结果:(哇~)

The end...

Python之PIL库的运用、GIF处理h的更多相关文章

  1. 一秒钟带你走进P图世界-----(python)PIL库的使用

    python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...

  2. python之PIL库(Image模块)

    PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...

  3. Python之PIL库的运用、GIF处理

    一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...

  4. Python之PIL库

    Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. ...

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

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

  6. python 利用PIL库进行更改图片大小的操作

    python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...

  7. ❤️【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤️

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本篇重点介绍Python处理图像的标准库PIL库,处理图像真的的很方便. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃 ...

  8. python中PIL库的使用

    API参考 打开dos窗口,安装库: pip install pillow 很明显,图片有点大,咱们缩略一下: from PIL import Image im = Image.open(" ...

  9. python利用PIL库使图片高斯模糊

    一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能 ...

随机推荐

  1. Python-接口自动化(三)

    python基础知识(三) (三)函数 1.函数 函数的语法: def 函数名(): 函数体 a.函数的关键字是def,函数体就是你希望这个函数帮你实现什么功能,函数名命名需要遵循的原则是以小写字母分 ...

  2. Java 访问限制符 在同一包中或在不同包中:使用类创建对象的权限 & 对象访问成员变量与方法的权限 & 继承的权限 & 深入理解protected权限

    一.实例成员与类成员 1. 当类的字节码被加载到内存, 类中类变量.类方法即被分配了相应内存空间.入口地址(所有对象共享). 2. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...

  3. js --"说声爱你不容易"

    <div class="tit"><label>yourName:</label><input type="text" ...

  4. js 两数的最大公约数

    function gcd(a,b){ if (b == 0){ return a; } var r = parseInt(a % b) ; return gcd(b, r);}gcd(12,5);

  5. selenium中iframe的切换

    #第一层是默认层, 第二层是新建标签的层,第三层是百度的那层from selenium import webdriverimport timedriver=webdriver.Chrome()driv ...

  6. 看到一个简单的背单词java程序的设计,收藏下

    https://blog.csdn.net/qq_40605167/article/details/81023836

  7. fdisk语法

    Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法: 对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/de ...

  8. 配置xml报错:URI is not registered ( Setting | Project Settings | Schemas and DTDs )

    报红提示:URI is not registered ( Setting | Project Settings | Schemas and DTDs ) 解决方法:打开Schemas and DTDs ...

  9. js 小数取整数

    1.丢弃小数部分,保留整数部分 parseInt() 22.127456取成22.13   parseInt(5/2) 2  向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入 ...

  10. Python 进程池的回调函数

    import os from multiprocessing import Pool,Process def f1(n): print('进程池里面的进程id',os.getpid()) print( ...