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)

调整图像的锐度

 
from PIL import Image
from PIL import ImageEnhance
gz = 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)



Python PIL 库的应用的更多相关文章

  1. Python PIL库学习笔记

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

  2. 使用Python PIL库中的Image.thumbnail函数裁剪图片

    今天,是我来到博客园的第五天,发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢 ...

  3. python PIL 库处理文件

    通过PIL库提供的API接口可以很方便的处理图像,功能十分强大: 最近有一个替换png背景色的需求,替换背景色的同时又不能够覆盖原来的文字,之前利用perl 的CD 模块一直没能够正确处理,最终用PI ...

  4. python PIL库的使用

    )PIL可以做很多和图像处理相关的事情: 图像归档(Image Archives).PIL非常适合于图像归档以及图像的批处理任务.你可以使用PIL创建缩略图,转换图像格式,打印图像等等. 图像展示(I ...

  5. Python PIL库之Image注解(API)

    http://blog.csdn.net/xiezhiyong3621/article/details/8499543 class Image Methods defined here: __geta ...

  6. 基于Python PIL实现简单图片格式转化器

    基于Python PIL实现简单图片格式转化器 目录 基于Python PIL实现简单图片格式转化器 1.简介 2.前期资料准备 2.1.1如何实现图片格式转换? 2.1.2如何保存需要大小的图片? ...

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

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

  8. 关于python下安装PIL库遇到的问题及解决办法

    关于python下安装PIL库遇到的问题及解决办法 关于python下安装PIL库遇到的问题及解决办法 :在下面这个网址下载pipllow(a replacement for PIL) www.lfd ...

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

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

随机推荐

  1. leetcode617

    这道题想了很久,并没有掌握思想,写了很多,也没有解决.先贴出思考的过程. class Solution { public: vector<TreeNode> v1; vector<T ...

  2. ZigBee毕设

    毕设题目: —————————————————————————————————————————————————————————————————————————————— 基于Zigbee的智能家居监测 ...

  3. UI5-学习篇-17-云端WEB IDE开发

    1.前提条件 SAP云平台账号已申请 云连接器设置完成:UI5-学习篇-15-云连接SAP Cloud Connector 云平台Destination设置完成:UI5-学习篇-16-云端SCP-De ...

  4. Android应用开发中,第三方集成新浪微博(sinaWeiboSDK)的过程记录

    作为一个android开发人员,不可避免的要学会使用和集成第三方API的能力 而新浪微博作为现在最主要的新闻速递媒体,使用十分普遍,并且提供了较为详细的API接入方法,故此选择集成sinaWeibiS ...

  5. PHP和Redis实现在高并发下的抢购及秒杀功能示例详解

    抢购.秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等. 抢购.秒杀实现很简单,但是有些问题需要解决,主要针对两个问题: 一.高并发对数据库产生的压力二. ...

  6. Ado.net之连接数据库

    一.Ado.net的核心 Ado.net的核心为两组重要的类,一个负责处理软件内部的实际数据(DataSet),另一个负责与外部数据系统通信(DataProvider) DataSet:包含一个或多个 ...

  7. Delphi TXLSReadWriteII 导出EXCEL

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  8. 微软BI 之SSIS 系列 - 数据仓库中实现 Slowly Changing Dimension 缓慢渐变维度的三种方式

    开篇介绍 关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看 数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型 ...

  9. 实验吧“解码磁带”的write up

    在“实验吧”的做CTF题时遇到的一道题,地址在这里:http://ctf5.shiyanbar.com/misc/cidai.html 因为正在学python,做这道题的时候正好用python写个简单 ...

  10. IDEA在运行Mybatis时找不到路径

    idea的默认是不加载java文件下的所以我们要手动添加,加载java文件到pom文件下,在build中添加 <resources> <resource> <direct ...