python-----PIL库的使用

一、什么是PIL库

1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素、色彩操作功能,还可以用于图像的归档和批量处理能力。

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

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

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

根据功能的不同,PIL库包括21个与图片相关的类,这些类可以被看作是子库或PIL库中的模块,例如:

Image,ImageChops,Imagecolor,ImageCrackCode,ImageDraw等等

二、PIL库的安装

注意:PIL库的名字是pillow,下载时用的是pillow,而不是PIL

在命令行中输入pip install pillow,就会自动下载

命令行快捷键win键+R键

按下确定键,就会出现命令行

 三、PIL库的Image类解析

1.PIL库的引用(调用)

>>>from PIL import Image

2.Image类图像读取和创建方法

3.Image类的常用属性

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

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

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

from PIL import Image
xiaogou=Image.open("C:\\Users\Administrator\Desktop\Python\\小狗.jpg")
xiaogou.thumbnail((128,128))
xiaogou.save("C:\\Users\Administrator\Desktop\Python\suoluetu","JPEG")
xiaogou1=xiaogou.filter(ImageFilter.CONTOUR)

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

四、图像过滤(ImageFilter子库)

1.调用ImageFilter类

from PIL import ImageFilter

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

from PIL import Image
from PIL import ImageFilter
xiaogou=Image.open("C:\\Users\Administrator\Desktop\Python\小狗.jpg")
xiaogou1=xiaogou.filter(ImageFilter.CONTOUR)
xiaogou1.save('C:\\Users\Administrator\Desktop\Python\guolvtu.jpg')

五、图像增强(ImageEnhance子库)

1.调用ImageEnhance

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

from PIL import Image
from PIL import ImageEnhance
xg = Image.open("C:\\Users\Administrator\Desktop\Python\pp1.jpg")
xg1 = ImageEnhance.Brightness(xg) #选择亮度
xg1.enhance(2).save("C:\\Users\Administrator\Desktop\Python\pp2.jpg")

 六、制作动态图(GIF图)

import imageio
savename = "C:\\Users\Administrator\Desktop\Python\动态图.GIF"
#准备制作的图像名称
filenames = ["C:\\Users\Administrator\Desktop\Python\p1.jpg","C:\\Users\Administrator\Desktop\Python\p2.jpg","C:\\Users\Administrator\Desktop\Python\p3.jpg"]
frames = []
for name in filenames:
frames.append(imageio.imread(name))
imageio.mimsave(savename,frames,'GIF',duration=1)

此处已完结,谢谢!

一秒钟带你走进P图世界-----(python)PIL库的使用的更多相关文章

  1. 小丁带你走进git的世界三-撤销修改

    一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...

  2. 小丁带你走进git的世界二-工作区暂存区分支

    小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...

  3. 小丁带你走进git的世界三-撤销修改(转)

    一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...

  4. 带你走进rsync的世界

    导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录.rsync共有3种使用方 ...

  5. 人人都可以写的一个Python可视化小程序,带你走进编程的世界

    当年的PHP号称是最好的编程语言,今天的Python就是最简单的编程语言,一个小小的程序,寥寥几行代码,带你体验一下编程的乐趣. 最简单的编程语言 今天要介绍的小工具是Python环境安装好之后,自带 ...

  6. 小丁带你走进git的世界四-重写历史记录

    一.git对象文件创建 开篇先补充一个知识点,就是比如我建立一个文件之后,使用git add就会生成一个git对象,但是git对象生成后可以在.git/objects里面对应,首先我们来初始化一个仓库 ...

  7. Java第一天,带你走进编程的世界,我的第一个程序

    要想彻底了解Java是什么,我就得首先了解编程语言的发展史.编程语言最初的形势是"0101......"数据编程,也就是机器语言.机器语言可以说是一种几乎没有人能够看懂的编程语言, ...

  8. 瞄一眼,带你走进SparkSQL的世界

    本文由  网易云发布. 作者:范欣欣(本篇文章仅限知乎内部分享,如需转载,请取得作者同意授权.) 最近想来,大数据相关技术与传统型数据库技术很多都是相互融合.互相借鉴的.传统型数据库强势在于其久经考验 ...

  9. 具体解释C++引用——带你走进引用的世界

     一.介绍引用 首先说引用是什么,大家能够记住,引用就是一个别名,比方小王有个绰号叫小狗.他的妈妈喊小狗回家吃饭.那就是在喊小王回家吃饭. 接下来我们用两行代码来声明一个引用(就拿小王和小狗来说吧 ...

随机推荐

  1. C#事件与委托详解

    from https://www.cnblogs.com/sjqq/p/6917497.html C#事件与委托详解[精华 多看看] Delegatedelegate是C#中的一种类型,它实际上是一个 ...

  2. 关掉那些windows上因权限无法关闭的服务

    ProcessExplorer 下载地址 :https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer 以管理员身 ...

  3. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

  4. 在windows系统下安装linux虚拟机(VMware)

    一.下载Vmware安装包(此处我安装的是VMware-workstation-full-14.1.3) 链接: https://pan.baidu.com/s/12xT1JaA7eheEgFfM-2 ...

  5. Perl输出带颜色行号或普通输出行

    定义好了一个可以输出带颜色行号以及行数据的函数print_with_line_num,f()是测试函数.在f()函数中,读取文件并输出读取的每一行数据,但根据参数选项决定是普通输出行还是同时输出带颜色 ...

  6. PHP按权重随机

    之前业务部门提了一个需求,要求将广告按照ecpm高低进行随机.(即:ecpm高的获取流量的几率大) 如下数组: //要求AD1的概率要求为50%,AD2概率为25% ,AD3的概率为15%,AD4的概 ...

  7. mySQL查看运行的进程

    查看运行的进程 show processlist kill id 杀掉进程

  8. Docker部署脚本

    实现 1.检查内核版本 2.检查docker是否已安装 3.安装docker,如因网络等原因失败循环安装至安装完成 #!/bin/bash #file:docker_install.sh #From: ...

  9. C#之事件与eventArgs

    static void Main(string[] args)         {             MyText myText = new MyText();             myTe ...

  10. c提高第四次作业

    1. 简述指针数组和数组指针的区别?答: 指针数组:是一个数组,每个元素都是指针 数组指针:是一个指针,指向数组的指针 2. 如何定义一个指向 int a[10] 类型的指针变量(数组指针)(使用3种 ...