快乐python 零基础也能P图 —— PIL库

Python PIL

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

一、PIL库简介

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

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

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

2. PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。

二、安装库函数

pip install pillow

注:由于本机已经安装了PIL库(安装时使用pillow),所以以更新为例,使用 -U 标签可实现更新。

三、使用库函数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是缩略图尺寸的元组

Example_1:

from PIL import Image
nest = Image.open("D:\\nest.jpg")
r,g,b = nest.split()           #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
nest1 = Image.merge(nest.mode,(b,g,r))
nest1.save("D:\\nest_1.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


图像的锐化效果

Example_2:

from PIL import Image
from PIL import ImageFilter
square = Image.open("D:\\square.jpg")
square1 = square.filter(ImageFilter.CONTOUR)  #选择轮廓效果
square1.save("D:\\square1.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)


调整图像的锐度

Example_3:

from PIL import Image
from PIL import ImageEnhance
gz = Image.open("D:\\gz.jpg")
gz1 = ImageEnhance.Brightness(gz)     #选择亮度
gz1.enhance(2).save("D:\\gz1.jpg")  #将亮度增强2倍后保存

原图对比效果图:

原文地址:https://www.cnblogs.com/bpf-1024/p/10663852.html

时间: 2024-08-26 03:59:13

快乐python 零基础也能P图 —— PIL库的相关文章

大牛整理最全Python零基础入门学习资料

大牛整理最全Python零基础入门学习资料 0 发布时间:『 2017-11-12 11:56 』     帖子类别:『人工智能』  阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料』的责任编辑:老王) 摘要:大牛整理最全Python零基础入门学习资料 Python数据类型--数字 Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. var1 = 1 var2 = 10 您也可以使

Python零基础学习系列之二--Python介绍及环境搭建

1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第

python零基础自学——前篇自白

首先声明,本人就是个菜鸟,小白一个,在这里记录我自学python时的点点滴滴,用于我的经验积累以及复习.当然,若有零基础自学的人看见,交流学习经验那就最好不过了. python其实对零基础的小白来说就再适合不过了,为什么这么说,个人对编程的理解就是高.大.上.总感觉都是些BT才可以玩这个的. 我自己创业,开公司有过好的时候,但最后都倒闭了,积累如此阅历,却回首发现,自己没有一项术语自己的专业既能.所以就想学习编程.跟专业朋友交流以后,都推荐我学习python.原因有以下几点: 一:简单. 因为是

Python零基础到就业指导,最后我泪奔了

简历中每个字都是要有作用的,都要证明你的能力或你可以给企业带来什么. 个人信息:主要是姓名.性别.邮箱.手机号.其他几项不需要多说什么,主要是邮箱,尽量避免使用qq邮箱(没有歧视的意思),163.foxmail.outlook都可以,不要跟我杠,我个人认为这样显得稍微专业一点. 专业技能:敲黑板了,精通这个词慎用!IT这个行业,除非你真的成为了一门语言的布道者,不然精通这个词我认为是坐井观天,同时也是在为面试挖坑.尽可能的根据自己对技能的掌握程度来使用熟悉.熟练使用.掌握等等类似的词汇.也可以使

python 零基础 基本知识(三)

python 语言基础 (零基础)  本节内容:  1.变量 2.基本数据类型 一.变量  1.变量的定义: 在python 当中,变量严格意义上应称为 "名字" ,也可以理解为标签.  比如把 "我是DJ" 这个值赋给python, 那么python就是变量.      2.变量的使用    在python 中,不需要先声明变量名及其类型, 直接赋值即可创建各种类型的变量.但是变量的命名并不是随意的.应遵循以下几条规则: * 变量名必须是一个有效的标识符.   

python 零基础学习大纲 - 【整理】

[整理]url:https://zhuanlan.zhihu.com/p/101953135 Python基本概念最全图1.Python 解释器: 2.Python数据结构: 3.变量与运算符: 4.Python 流程控制: 5.Python 文件处理: 6.Python 输入输出: 7.Python 异常: 8.Python 函数和模块: 9.Python 面相对象: 10.Python 多线程: 11.Python 标准库: 12.Python 第三方库: 一开始学习知识的时候,我们对基本概

老少皆宜的密大Python零基础入门

Who are we? MTech是一个由密歇根大学 工程院中 (AE/ME)的中国学生组成的的一个专注于专业知识和技能的分享和交流的俱乐部.我们创建这个俱乐部旨在促进工程专业中国学生之间技术层面的交流,搭建桥梁促进知识的分享和传播.请关注我们的微信公众号("密大MTech")和我们的网站(mtechmae.webstarts.com)了解关于我们的更多信息. What is Python? Python是一种面向对象.直译式的编程语言.它的语法简单,并包含了功能完备的库,适合解决很多

Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量

大家在中学就已经学过变量的概念了.例如:我们令 x = 100,则可以推出 x*2 = 200 试试下面这段 Python 代码 1 import turtle 2 3 turtle.shape("turtle") 4 x = 100 5 turtle.forward(x) 6 turtle.left(45) 7 turtle.forward(2*x) 8 9 turtle.exitonclick() 运行上面的代码,小海龟将画出下面的图案 x = 100 声明了变量 x,并将它赋值为

Python零基础好学吗?零基础如何学习Python?

现在越来越多的人想要学习Python课程,在学习Python的过程中不少人都会关注学习Python难吗?今天小编就为大家详细的解读一下吧. 0基础学习Python语言可以吗?首先个人认为可以的,Python是一门非常适合入门的编程语言. Python语法简单明了,代码可读性很高,容易入门;对于初学者规范自己的学习有很大的帮助,同时还可以帮助初学者看懂别人的代码. Python对于代码的要求是非常严谨的,对于初学者可以养成良好的代码习惯;同时Python的语法设计非常优秀,思想也比较现代化,可以更