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相关推荐

  1. python pil怎么安装_python pil 怎么安装 怎样安装python的图像处理库pillow

    python 怎么安装pillow 1. 安装pip [plain] view plain copy sudo easy_install pip pip 安装成功就可以直接安装pil或者pillow ...

  2. python头像变二维码_Python 图像处理库 pillow,提取支付宝和微信支付图片二维码...

    下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件,但图片处理软件不利于批处理,且学习也需要一定成本.本文将教你使用 Pytho ...

  3. nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...

    你在用什么软件进行图像处理呢?厌倦了鼠标和手指的拖拖点点,想不想用程序和代码进行图像的高效处理,Python作为简单高效又很强大的一门编程语言,对于图像的处理自然也是轻松拿下,听起来是不是很酷很极客, ...

  4. pil对图像加透明 python_使用Python图像处理库Pillow处理图像文件

    文/江红  本文来源<Python程序设计与算法基础教程(第2版)-微课版> 本案例通过使用Python图像处理库Pillow,帮助读者进一步了解Python的基本概念:模块.对象.方法和 ...

  5. pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法

    pil(python image library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:pil. pil ...

  6. pillow属于python标准库吗_详解Python图像处理库Pillow常用使用方法

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:PIL. PIL ...

  7. Python图像处理库Pillow(PIL)的简单使用

    一.PIL和Pillow图像处理库 图像库PIL(Python Image Library)是Python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像 ...

  8. Python的第三方库pillow

    一.pillow的介绍 Python的第三方库pillow在Pypi上的地址:https://pypi.org/project/Pillow/ ​ Pillow是Python的第三方图像处理库,但是由 ...

  9. Python的图像处理库(OpenCV,PIL,matplotlib和scikit-image)

      目前接触过的python图像处理代码涉及到多种的图像库,其中最常用的当属opencv和PIL.惭愧的是,以前只是拿来用,却一直迷惑为什么不同的代码会选择不同的图像库.这些图像库的联系和区别又是什么 ...

  10. python的图像处理库是啥_Python 图像处理库 Pillow 入门

    来源:Belial_2010 blog.csdn.net/kezunhai/article/details/46446153 Pillow是Python里的图像处理库(PIL:Python Image ...

最新文章

  1. php 时间转换编号,PHP 时间的格式转换
  2. args, sys.argv的区别
  3. Android拍照流程
  4. kill命令---Linux学习笔记
  5. STM32 ISP 下载程序, C源码,
  6. 数据分析-书籍整理(三)
  7. 2017年预测:突破性创意工作站、物联网
  8. [概念学习] Virtualization的几个概念
  9. git The requested URL returned error: 403
  10. 5道经典面试题【转载】
  11. python中else与for_在Python中使用else条件语句和for循环
  12. 《SAP从入门到精通》——导读
  13. Python/python/xpath爬虫--妙招网
  14. 纪念日或悼念人网页变灰仅需一行代码
  15. 安全漏洞整改 禁用 WebDAV
  16. bmp图像文件格式说明
  17. 本地服务器模板网站怎么安装,使用dedecms搭建自己的本地网站(全程图解)
  18. c语言质变量变,从量变到质变------------学习的必由之路
  19. 软考A计划-试题模拟含答案解析-卷十三
  20. STM32系列芯片命名含义一览

热门文章

  1. 五个脑叶的功能_人类大脑的生理构造及功能分区
  2. miui11稳定版获取完整root_怎么获取root权限-MIUI11系统开启系统ROOT权限图文教程-支持小米红米全部机型...
  3. Maven3.8.5安装与配置
  4. html提取正文字游戏名,游戏id古诗词 用古诗词取个游戏名字
  5. 公主同盟第3关(GBA)(难) 奥兰多西部
  6. AM调制解调的Matlab和Simulink实现
  7. c语言编程中每个指令含义,C语言编程中我们会遇见一些指令,在这里列了一些出来...
  8. Adobe Acrobat 如何通过书签制作多级目录
  9. 虚拟现实(VR)技术的升级应用|时空克隆 三维视频融合 投影融合 点卯 魔镜系列
  10. 六、python实现日语单词索引:查询单词对应的课