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 , ImageEnhanceim = 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 Imagedef sketch(img, threshold):'''素描param img: Image实例param threshold: 介于0到100'''if threshold < 0: threshold = 0if threshold > 100: threshold = 100width, height = img.sizeimg = img.convert('L') # convert to grayscale modepix = img.load() # get pixel matrixfor w in xrange(width):for h in xrange(height):if w == width-1 or h == height-1:continuesrc = pix[w, h]dst = pix[w+1, h+1]diff = abs(src - dst)if diff >= threshold:pix[w, h] = 0else:pix[w, h] = 255return img if __name__ == "__main__":import sys, ospath = os.path.dirname(__file__) + os.sep.join(['', 'images', 'lam.jpg'])threshold = 15if 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')
效果对比图。
转载于:https://www.cnblogs.com/gyy-15768200938/p/10686756.html
Python之PIL库相关推荐
- db2top详细使用方法_Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略
Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...
- Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等
Python之PIL之绘图:基于Python的PIL库绘制各种图形.添加文字等 目录 一.绘制各种形状各种案例 1.绘制矩形 2.绘制圆形.弧线形
- Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略
Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...
- Python Pillow(PIL)库的用法介绍(二)
Python Pillow(PIL)库的用法介绍(二) 在上一篇文章中介绍了Pillow库的一些基本用法,参考:https://blog.csdn.net/weixin_43790276/articl ...
- Python:PIL库中getpixel()-方法的使用
Python:PIL库中getpixel()方法的使用 getpixel()函数是用来获取图像中某一点的像素的RGB颜色值,getpixel的参数是一个像素点的坐标.对于图象的不同的模式,getpix ...
- python的PIL库部分模块函数
python的PIL库部分模块函数 1.Image.open("文件路径") 打开图片文件 1.image.convert(mode) 将其转换为某模式 2.Image.new(模 ...
- 新发的日常小实验——使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍数(Unity、PIL、Pillow、压缩)
文章目录 一.问题:图片导入Unity被调整成2的N次方 二.设置不转换成2的N次方 三.使用ETC压缩格式,图片宽高必须是4的倍数 四.使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍 ...
- 使用python中PIL库进行切图时候出现了图片全黑
使用PIL的Image切图时候图片全黑 不知道大家有没有遇见这样得问题,使用python中PIL库进行切图时候出现了图片全黑得现象 今天写了个切图得代码,但是得到得图片是全黑的,像这样的情况: 不知道 ...
- 通过Python的PIL库给图片添加马赛克
文章目录 前言 一.Pillow是什么? 二.安装PIL库 三.查看PIL库版本 四.使用方法 1.引入库 2.定义图片路径 3.打开需要打马赛克的图片 4.获取图片尺寸 5.创建一个新的图片对象 6 ...
- python 用PIL库缩放图片并保存
python 用PIL库缩放图片并保存 PIL库安装 pip install pillow 单个图片缩放 from PIL import Imageimagepath = r'.\img\number ...
最新文章
- From 《visual C++ 6.0开发工具与调试》
- linux安装zookeeper+使用命令
- 倒序存放数组java_java实现数组中的逆序对
- 虚拟机四种网络连接模式比较
- 只靠可视化大屏,做不了数字化,数据总监总结3点,你做到了几个
- php 下拉菜单 不提交 选中的值,在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值...
- [NOIP2013] 花匠
- Firefox6 使用 firebug 解决方法 以及迅雷(thunder)插件报错
- linkedlist 最难题 Insert into a Cyclic Sorted List
- python怎么提取百度首页链接_python如何获取百度搜索结果的真实URL
- 安装qt qmake assistant 错误:could not find a Qt installation of ''
- 渗透测试工程师的Linux学习之路
- 【3D建模制作技巧分享】Zbrush如何将图片转浮雕模型
- Class 'app\index\controller\News' not found 解决方案
- node的HTPP请求
- 【Spring Boot】使用JDBC 获取相关的数据
- js简易版歌单播放,可切换下一首
- Python调用动态链接库DLL文件
- 针对学校出现猪流感而做的一个简单的小软件(更新版)
- 用HTML5实现手机摇一摇的功能并配上声音