Python图像处理库Pillow(PIL)的简单使用
一.PIL和Pillow图像处理库
图像库PIL(Python Image Library)是Python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。PIL原来是只支持python2的版本,后来出现了移植到python3的库pillow,pillow其功能和PIL差不多。 PIL 软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。
二.安装Pillow
Pillow 的安装非常简单,不过需要注意 Pillow 和 PIL 不能共存在相同的环境中,因此在安装 Pillow 之前,先要卸载 PIL。命令行下通过 pip 安装:
pip install pillow
安装完成之后,可以在 Python 的开发环境输入以下代码,测试 Pillow 是否安装成功,以及查看相应的版本号。
from PIL import Imageprint(Image.VERSION)
注意,虽然使用的是 Pillow,但是导入的包依然是 PIL。
三.Image类使用
Image是PIL中最重要的模块之一,任何一张图片都可以使用Image对象来表示。 可以通过多种方式来创建 Image 类的实例,比如:从文件中加载图像、处理其它图像或从头开始创建图像。
1.使用Image类打开本地图片
要从文件中加载图像创建 Image 类的实例,可以使用 Image 模块的 open()
方法。
from PIL import Imageimg = Image.open(r"./test.jpg")
执行成功,Image.open()
函数会返回一个 Image 对象。如果图像文件打开错误,则会抛出 OSError 错误。
注意在使用交互式处理图片文件时,应该使用文件的全路径,如果运行py文件,还是建议采用相对路径。
2.使用Image类从URL读取图像
读取网络图形需要配合网络请求工具,通过网络请求工具将图片变成流然后通过Image类进行打开。
from PIL importImage
import requestsurl ='https://xxxxxx.jpg'
resp = requests.get(url, stream=True).raw
img =Image.open(resp)
img.save('xxxx.jpg','jpeg')
该示例从 URL 读取图像并将其保存在磁盘上。
3.使用Image类查看图片信息
通过Image 类的实例可以使用实例的属性来检查文件内容。
from PIL import Image
img = Image.open(r"./test.jpg")print(img.format)
# JPEG
print(img.size)
# (1080, 1920)
print(img.mode)
# RGB
- format: 返回图像文件的格式(JPG, PNG, BMP, None, etc.)。用来标识图片的格式或来源,如果图片并不是通过读取文件得到的,那么值就是None。
- size: 返回图像的尺寸。以二元组的形式返回图像的宽度和高度(以像素为单位);
- mode: 返回图像的色彩模式(L, RGB, CMYK, etc.)。L 为灰度图像,RGB 为真彩色图像,CMYK 为印刷图像;
4.使用Image类显示图片
Image 类实例有很多方法,如果想要查看图像,可以使用 show()
方法。
from PIL import Image
img = Image.open(r"./test.jpg")
img.show()
show() 方法效率不高,因为它会将图像保存到临时文件中,并且调用你电脑中的图像程序来显示图像。如果你的电脑中没有安装显示图像的应用程序,show() 方法甚至不能工作。
5.使用Image类保存图片
Pillow 保存一个图像 语法为:
Image.save(fp, format=None, **params)
- fp - 文件名(字符串)、pathlib.Path对象或文件对象。
- format - 可选的格式重写。如果省略,使用的格式是由文件名扩展名决定的。如果使用文件对象而不是文件名,应该总是使用这个参数。
- options - 图像写入器的额外参数。
- 返回值 - 无
- KeyError - 如果不能从文件名确定输出格式,使用格式选项来解决这个问题。
- IOError - 如果文件不能被写入,文件可能已经被创建,可能包含部分数据。
注意:保存的时候,如果没有指定图片格式的话,那么Pollow会根据输入的后缀名决定图片的格式。
6.Image类常用图片转换功能
获取图片信息
from PIL import Image
im = Image.open(r"./test.jpg")
print(im.format) # JPEG
获取大小
from PIL import Image
im = Image.open(r"./test.jpg")
print(im.size) # (960, 626)
图像缩放
from PIL import Image
im = Image.open(r"./test.jpg")
# 缩放为原来的1/2
im = im.resize((im.size[0] // 2, im.size[1] // 2))
图像翻转
from PIL import Image
im = Image.open(r"./test.jpg")
# 填入角度,按照逆时针进行翻转
im = im.rotate(90)
图像模糊
from PIL import Image
im = Image.open(r"./test.jpg")
# 图像模糊
im = im.filter(ImageFilter.BLUR)
图像增强(细节突出)
from PIL import Image
im = Image.open(r"./test.jpg")
im = im.filter(ImageFilter.DETAIL)
图像边缘提取
from PIL import Image
im = Image.open(r"./test.jpg")
im = im.filter(ImageFilter.FIND_EDGES)
浮雕效果
from PIL import Image
im = Image.open(r"./test.jpg")
im = im.filter(ImageFilter.EMBOSS)
锐化效果
from PIL import Image
im = Image.open(r"./test.jpg")
im = im.filter(ImageFilter.SHARPEN)
四.Pillow压缩图片大小
1.quality 方式
使用PIL模块的 quality方法来进行压缩
from PIL import Image#读取img文件
img_file = './test.jpg'
im = Image.open(img_file)#quality 是设置压缩比
im.save('pico-ouo.jpg',quality = 20)
2.thumbnail方式
用PIL的 thumbnail方式进行图片压缩
from PIL import Image,ImageFile#防止图片超过178956970 pixels 而报错
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None#读取img文件
img_file = './test.jpg'
im = Image.open(img_file)#获取原尺寸图片大小
w,h = im.size
#图片进行50%的压缩
im.thumbnail = ((w // 2, h // 2))
#保存
im.save('test.jpg')
五.Pillow的绘图功能
PIL的ImageDraw提供了一系列绘图方法,让我们可以直接绘图。篇幅有限,本文暂时先不做探讨。
参考资料:
PIL:图像处理模块,功能强大、简单易用
Python图像处理库Pillow(PIL)的简单使用相关推荐
- pil对图像加透明 python_使用Python图像处理库Pillow处理图像文件
文/江红 本文来源<Python程序设计与算法基础教程(第2版)-微课版> 本案例通过使用Python图像处理库Pillow,帮助读者进一步了解Python的基本概念:模块.对象.方法和 ...
- pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法
pil(python image library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:pil. pil ...
- pillow属于python标准库吗_详解Python图像处理库Pillow常用使用方法
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:PIL. PIL ...
- nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...
你在用什么软件进行图像处理呢?厌倦了鼠标和手指的拖拖点点,想不想用程序和代码进行图像的高效处理,Python作为简单高效又很强大的一门编程语言,对于图像的处理自然也是轻松拿下,听起来是不是很酷很极客, ...
- 简单实用的Python图像处理库Pillow
Pillow图像处理 Pillow 库的安装 图象处理基本知识 图像的RGB 色彩模式 像素阵列 Image 模块 打开和新建 混合 透明度混合处理 遮罩混合处理 复制和缩放 复制图像 缩放像素 缩放 ...
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
常用操作 合成 Image.blend(i1,i2,a)/Image.composite(i1,i2,mask) 缩略图 thumbnail(size,filter=None) Modifies ...
- python pil怎么安装_python pil 怎么安装 怎样安装python的图像处理库pillow
python 怎么安装pillow 1. 安装pip [plain] view plain copy sudo easy_install pip pip 安装成功就可以直接安装pil或者pillow ...
- pillow python 划线_Python用Pillow(PIL)进行简单的图像操作
Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...
- python头像变二维码_Python 图像处理库 pillow,提取支付宝和微信支付图片二维码...
下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件,但图片处理软件不利于批处理,且学习也需要一定成本.本文将教你使用 Pytho ...
最新文章
- ZooKeeper内部原理
- webconfig中配置各种数据库的连接字符串(转)
- 设计模式 -(5)装饰模式(结构型)
- wxWidgets:wxColourDatabase类用法
- 给Oracle 11g Interval分区进行重命名
- 编程必备的32个修养,你占了几个?
- vim 显示行号_Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点
- Faiss源码剖析:类结构分析
- 从零开始:什么是Makefile分析
- Sophos 修复严重的防火墙 RCE 漏洞
- Python+OpenCV:Feature Matching + Homography to find Objects
- java switch枚举类,使用枚举类enum代替switch
- 区块链 以太坊 虚拟机 EVM 为什么256条指令
- OpenWRT设置SmartDNS+ADGuardHome
- Ubuntu下svn回滚到指定版本
- 软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法
- 电力电子相关论文英文单词积累
- sinon.js的spy、stub和mock
- 《富爸爸穷爸爸》读书摘录脑图
- 九州量子黄蕾蕾:我们是冲着量子通信产业化来的
热门文章
- WordPress系列教程(七)----WordPress主题之Git-alpha
- Web3中文|年度回顾:2022年Web3的发展情况
- MIUI开发版和稳定版有什么区别
- linux禁用系统缓存,如何清理或禁用内存缓存?
- html设置按钮阴影效果,CSS如何设置文本和元素阴影效果?(代码示例)
- 2022总结和2023展望
- 对于养老,30-49岁人群更重视慢病管理,50岁及以上担心没有钱以及生活不能自理...
- git提交代码工具推荐
- win11蓝牙图标突然不见了
- “进厂”第一课:大厂Java岗实习要求大盘点(内附2022/2023校招渠道整理)