Python之PIL库
Python PIL
PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储、显示和处理,能够处理几乎所有格式的图片。
一、PIL库简介
1. PIL库主要有2个方面的功能:
(1) 图像归档:对图像进行批处理、生产图像预览、图像格式转换等。
(2) 图像处理:图像基本处理、像素处理、颜色处理等。
二、安装库函数
pip install pillow
三、使用库函数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是缩略图尺寸的元组 |
例子1
# -*- encoding:utf-8 -*-
''' 改变颜色 --- 颜色反转'''
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.thumbnail((400,254)) #创建缩略图
nest1.save("D:\\nest_2.jpg")

处理图像序列(gif图像)
函数:ImageSequence()
下面的代码可以遍历gif图像中的所有帧,并分别保存为图像。
index = 0
while 1: try: gif.seek(index) gif.save("%d.%s" %(index,'jpg' if gif.mode == 'JPEG' else 'png')) index += 1... except EOFError: print("Reach the end of gif sequence!") break
ImageEnhance()
from PIL import Image , ImageEnhance
im = Image.open("F:\\test\\image1\\person.jpg")
brightness = ImageEnhance.Brightness(im)
im_brightness = brightness.enhance(1.5)
contrast = ImageEnhance.Contrast(im)
im_contrast = contrast.enhance(1.5)
im_brightness.save("./image1/im_brightness.jpg")
im_contrast.save("./image1/im_contrast.jpg")
ImageEnhance是PIL下的一个子类,主要用于图像增强,比如增加亮度(Brightness),增加对比度(Contrast)等。上面的代码将原来图像的亮度增加50%,将对比度也增加了50%。

接下来把图片变成素描的效果
from PIL import Image def sketch(img, threshold):
'''
素描
param img: Image实例
param threshold: 介于0到100
'''
if threshold < 0: threshold = 0
if threshold > 100: threshold = 100 width, height = img.size
img = img.convert('L') # convert to grayscale mode
pix = img.load() # get pixel matrix for w in xrange(width):
for h in xrange(height):
if w == width-1 or h == height-1:
continue src = pix[w, h]
dst = pix[w+1, h+1] diff = abs(src - dst) if diff >= threshold:
pix[w, h] = 0
else:
pix[w, h] = 255 return img
if __name__ == "__main__":
import sys, os path = os.path.dirname(__file__) + os.sep.join(['', 'images', 'lam.jpg'])
threshold = 15 if len(sys.argv) == 2:
try:
threshold = int(sys.argv[1])
except ValueError:
path = sys.argv[1]
elif len(sys.argv) == 3:
path = sys.argv[1]
threshold = int(sys.argv[2]) img = Image.open(path)
img = sketch(img, threshold)
img.save(os.path.splitext(path)[0]+'.sketch.jpg', 'JPEG')


效果对比图。
Python之PIL库的更多相关文章
- 一秒钟带你走进P图世界-----(python)PIL库的使用
python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...
- python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
- Python之PIL库的运用、GIF处理
一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...
- Python之PIL库的运用、GIF处理h
一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...
- Python关于PIL库的学习总结与成果展示
一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. : ...
- python 利用PIL库进行更改图片大小的操作
python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...
- ❤️【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤️
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本篇重点介绍Python处理图像的标准库PIL库,处理图像真的的很方便. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃 ...
- python中PIL库的使用
API参考 打开dos窗口,安装库: pip install pillow 很明显,图片有点大,咱们缩略一下: from PIL import Image im = Image.open(" ...
- python利用PIL库使图片高斯模糊
一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能 ...
随机推荐
- centos nginx配置https
1.获取https证书: 用的阿里的免费证书: 参考:https://blog.csdn.net/chandoudeyuyi/article/details/71246255 2.修改nginx配置文 ...
- Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块
专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...
- js基本知识
1.js中的数据类型: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型. 2.typeof 返回的是字符串,有 ...
- DataGridView添加的数据最后一步无法生效的问题。
在做项目时,需要使用到大量固定的参数,使用时只需修改一部分定值即可,所以就选用DataGridView控件进行循环添加,数据添加完成,一切正常,但是在修改数据时发现,每一次修改的数据的操作的最后一步总 ...
- Cygwin工具安装和使用指导书
前言 Cygwin是一个在windows平台上运行的类UNIX模拟环境.它可以满足你在Windows系统上学习Linux基本命令操作.脚本调试的基本需求. Cygwin使用优点介绍 1.Cygwin安 ...
- 自然语言推断(NLI)、文本相似度相关开源项目推荐(Pytorch 实现)
Awesome-Repositories-for-NLI-and-Semantic-Similarity mainly record pytorch implementations for NLI a ...
- js生成带有logo的二维码并保存成图片下载
生成二维码,需要依赖jquery,先引入一个jquery,然后需要一个插件改变过了jquery-qrcode.js 插件代码(需要的自己打开看): /*! jquery-qrcode v0.14.0 ...
- Jquery通过AJAX从后台获取数据显示在表格上(复选)
代码: function GetMultiLineSelectTable(tableId, selectIds) { var table = $(tableId); var url = table.d ...
- JS数据类型之String类型
转换为字符串 var num = 10 num.toString(); //"10" 转换为字符串-参数表示几进制的字符串 var stringValue = "hell ...
- linux下压力测试工具ab的使用
一.安装 [root@node2 logs]# yum install httpd-tools 已加载插件:fastestmirror Loading mirror speeds from cache ...