Python的图像处理库Pillow
Python Imaging Library ( PIL ) 给 Python 增加了图像处理能力。
这个库提供了广泛的文件格式支持,高效的内部展现,以及十分强大的图像处理能力。
由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
Python3下安装Pillow
pip install Pillow
Image类的使用
Image是PIL最重要的类, 你可以通过多种方法创建这个类的实例。可以从文件中加载图像,并对图像进行各种处理操作。
使用Image模块
from PIL import Image
从文件中加载Image对象
im = Image.open("test.jpg”)print(im.format, im.size, im.mode)
Image的常见属性
format:图像来源。如果图像不是从文件读取它的值就是None
size:图像尺寸,一个二元tuple,包含width和height(宽度和高度,单位都是px)
mode:颜色模式, “L” (luminance) 表示灰度图像, “RGB” 表示真彩色图像, “CMYK” 表示出版图像。
图像保存
im.save(outfile, "JPEG")
图像缩略图
im.thumbnail(size)
使用Image.ANTIALIAS可以消除锯齿
im.thumbnail(size, Image.ANTIALIAS)
PIL库不会直接解码或者加载图像栅格数据。当你打开一个文件,只会读取文件头信息用来确定格式,颜色模式,大小等等,文件的剩余部分不会主动处理。这意味着打开一个图像文件的操作十分快速,跟图片大小和压缩方式无关。
图像的裁剪合并
从图像中复制出一个矩形选区
box = (100, 100, 400, 400)region = im.crop(box)
矩形选区有一个4元元组定义,分别表示左、上、右、下的坐标。这个库以左上角为坐标原点,单位是px,所以上诉代码复制了一个 300x300 pixels 的矩形选区。这个选区现在可以被处理并且粘贴到原图。
处理复制的矩形选区并粘贴到原图
region = region.transpose(Image.ROTATE_180)im.paste(region, box)
当你粘贴矩形选区的时候必须保证尺寸一致。此外,矩形选区不能在图像外。然而你不必保证矩形选区和原图的颜色模式一致,因为矩形选区会被自动转换颜色。
分离和合并颜色通道
r, g, b = im.split()im = Image.merge("RGB", (b, g, r))
图像缩放
out = im.resize((128, 128))
如果要消除锯齿,可以使用Image.ANTIALIAS过滤器
out = im.resize((128, 128), Image.ANTIALIAS)
图像旋转
out = im.rotate(45)out = im.transpose(Image.FLIP_LEFT_RIGHT)out = im.transpose(Image.FLIP_TOP_BOTTOM)out = im.transpose(Image.ROTATE_90)out = im.transpose(Image.ROTATE_180)out = im.transpose(Image.ROTATE_270)
颜色模式转换
im.convert("L")
图像滤镜
from PIL import Image, ImageFilter#模糊滤镜im2 = im.filter(ImageFilter.BLUR)#轮廓滤镜im2 = im.filter(ImageFilter.CONTOUR)#细节增强滤镜im2 = im.filter(ImageFilter.DETAIL)#边缘增强滤镜im2 = im.filter(ImageFilter.EDGE_ENHANCE)#深度边缘增强滤镜im2 = im.filter(ImageFilter.EDGE_ENHANCE_MORE)#浮雕滤镜im2 = im.filter(ImageFilter.EMBOSS)#边缘信息滤镜im2 = im.filter(ImageFilter.FIND_EDGES)#平滑滤波滤镜im2 = im.filter(ImageFilter.SMOOTH)#深度平滑滤波滤镜im2 = im.filter(ImageFilter.SMOOTH_MORE)#锐化滤波滤镜im2 = im.filter(ImageFilter.SHARPEN)
文字转换为图片
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw#设置字体,如果没有,也可以不设置
font = ImageFont.truetype(word_ttf,word_size)
w,h = font.getsize("测")
image = Image.new("RGB",[width, height],"white")
draw = ImageDraw.Draw(image)
#一个一个写入文字
for k, text in enumerate(strlist):for m, ch in enumerate(text):draw.text((w*m, h*k), ch, (0,0,0), font=font) #设置位置坐标 文字 颜色 字体#定义文件名
image.save("./output.jpg")
Python的图像处理库Pillow相关推荐
- python pil怎么安装_python pil 怎么安装 怎样安装python的图像处理库pillow
python 怎么安装pillow 1. 安装pip [plain] view plain copy sudo easy_install pip pip 安装成功就可以直接安装pil或者pillow ...
- python头像变二维码_Python 图像处理库 pillow,提取支付宝和微信支付图片二维码...
下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件,但图片处理软件不利于批处理,且学习也需要一定成本.本文将教你使用 Pytho ...
- nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...
你在用什么软件进行图像处理呢?厌倦了鼠标和手指的拖拖点点,想不想用程序和代码进行图像的高效处理,Python作为简单高效又很强大的一门编程语言,对于图像的处理自然也是轻松拿下,听起来是不是很酷很极客, ...
- 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 ...
- Python图像处理库Pillow(PIL)的简单使用
一.PIL和Pillow图像处理库 图像库PIL(Python Image Library)是Python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像 ...
- Python的第三方库pillow
一.pillow的介绍 Python的第三方库pillow在Pypi上的地址:https://pypi.org/project/Pillow/ Pillow是Python的第三方图像处理库,但是由 ...
- Python的图像处理库(OpenCV,PIL,matplotlib和scikit-image)
目前接触过的python图像处理代码涉及到多种的图像库,其中最常用的当属opencv和PIL.惭愧的是,以前只是拿来用,却一直迷惑为什么不同的代码会选择不同的图像库.这些图像库的联系和区别又是什么 ...
- python的图像处理库是啥_Python 图像处理库 Pillow 入门
来源:Belial_2010 blog.csdn.net/kezunhai/article/details/46446153 Pillow是Python里的图像处理库(PIL:Python Image ...
最新文章
- php 时间转换编号,PHP 时间的格式转换
- args, sys.argv的区别
- Android拍照流程
- kill命令---Linux学习笔记
- STM32 ISP 下载程序, C源码,
- 数据分析-书籍整理(三)
- 2017年预测:突破性创意工作站、物联网
- [概念学习] Virtualization的几个概念
- git The requested URL returned error: 403
- 5道经典面试题【转载】
- python中else与for_在Python中使用else条件语句和for循环
- 《SAP从入门到精通》——导读
- Python/python/xpath爬虫--妙招网
- 纪念日或悼念人网页变灰仅需一行代码
- 安全漏洞整改 禁用 WebDAV
- bmp图像文件格式说明
- 本地服务器模板网站怎么安装,使用dedecms搭建自己的本地网站(全程图解)
- c语言质变量变,从量变到质变------------学习的必由之路
- 软考A计划-试题模拟含答案解析-卷十三
- STM32系列芯片命名含义一览
热门文章
- 五个脑叶的功能_人类大脑的生理构造及功能分区
- miui11稳定版获取完整root_怎么获取root权限-MIUI11系统开启系统ROOT权限图文教程-支持小米红米全部机型...
- Maven3.8.5安装与配置
- html提取正文字游戏名,游戏id古诗词 用古诗词取个游戏名字
- 公主同盟第3关(GBA)(难) 奥兰多西部
- AM调制解调的Matlab和Simulink实现
- c语言编程中每个指令含义,C语言编程中我们会遇见一些指令,在这里列了一些出来...
- Adobe Acrobat 如何通过书签制作多级目录
- 虚拟现实(VR)技术的升级应用|时空克隆 三维视频融合 投影融合 点卯 魔镜系列
- 六、python实现日语单词索引:查询单词对应的课