详解Python图像处理库Pillow常用使用方法


Posted in Python onSeptember 02, 2019

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

其官方主页为:PIL。 PIL历史悠久,原来是只支持python2.x的版本的,后来出现了移植到python3的库pillow,pillow号称是friendly fork for PIL,其功能和PIL差不多,但是支持python3。

PIL(Python Imaging Library)是Python一个强大方便的图像处理库,只支持到Python2.7。

Pillow是PIL的一个派生分支,在Python3标准库中用Pillow代替PIL。

Pillow官网:https://pillow.readthedocs.io/en/latest/handbook/index.html

下面是使用例子,用法可见代码注释。

from PIL import Image,ImageFilter,ImageGrab,ImageDraw,ImageFont
# 创建图片:宽800*高600,红色
imNew = Image.new('RGB',(800,600),(255,0,0))
# 显示图片
#imNew.show()
# 抓取屏幕
imGrab = ImageGrab.grab()
imGrab.save('grab.jpg', 'jpeg')
# 打开图片
im = Image.open('1.jpg')
# 复制图片
im1 = im.copy()
im2 = im.copy()
im3 = im.copy()
im4 = im.copy()
im5 = im.copy()
im6 = im.copy()
im7 = im.copy()
# 获得图片宽高:
w, h = im.size
print('图片宽高:{} * {}'.format(w, h))
# 缩略图(图片不会被拉伸,只能缩小)
im.thumbnail((w//2, h//2))
im.save('1_thumbnail.jpg', 'jpeg')
# 缩放(图片可能会被拉伸,可缩小也可放大)
im1 = im1.resize((w//2, h//2))
im1.save('1_resize.jpg', 'jpeg')
# 模糊图片
im2 = im2.filter(ImageFilter.BLUR)
im2.save('1_blur.jpg', 'jpeg')
# 旋转图片,逆时钟旋转45度
im3 = im3.rotate(45)
im3.save('1_rotate.jpg', 'jpeg')
# 图片转换:左右转换 FLIP_LEFT_RIGHT,上下转换 FLIP_TOP_BOTTOM
im4 = im4.transpose(Image.FLIP_LEFT_RIGHT)
im4.save('1_transpose.jpg', 'jpeg')
# 图片裁剪
box = (200,200,400,400) #左上角(0,0),4元组表示坐标位置:左、上、右、下
im5 = im5.crop(box)
im5.save('1_crop.jpg', 'jpeg')
# 图片上添加文字
draw = ImageDraw.Draw(im6)
#truetype设置字体、文字大小
#stxingka.ttf华文行楷 simkai.ttf 楷体 simli.ttf 隶书
font = ImageFont.truetype("C:\\WINDOWS\\Fonts\\stxingka.ttf", 20) 
draw.text((100,100), ('hello word \n你好,世界'), fill='#0000ff', font=font)
im6.save('1_drawText.jpg', 'jpeg')
# 图片上添加图片(粘贴图片)
imTmp = Image.new('RGB',(30,30),'blue')
im7.paste(imTmp, (50,50)) #第2个参数为坐标
im7.save('1_paste.jpg','jpeg')
# 图片横向拼接:拼接上面im6、im7(两张图片大小一样)
im6Width, im6Height = im6.size
imHorizontal = Image.new('RGB', (im6Width * 2, im6Height))
imHorizontal.paste(im6, (0,0))
imHorizontal.paste(im7, (im6Width,0))
imHorizontal.save('1_horizontal.jpg', 'jpeg')
# 图片竖向拼接:拼接上面im6、im7
imVertical = Image.new('RGB', (im6Width, im6Height*2))
imVertical.paste(im6, (0,0))
imVertical.paste(im7, (0,im6Height))
imVertical.save('1_vertical.jpg', 'jpeg')

总结

以上所述是小编给大家介绍的Python图像处理库Pillow常用使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
django1.8使用表单上传文件的实现方法
Nov 04 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Python列表切片用法示例
Apr 19 Python
基于python爬虫数据处理(详解)
Jun 10 Python
轻松理解Python 中的 descriptor
Sep 15 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
在pytorch中查看可训练参数的例子
Aug 18 Python
python super的使用方法及实例详解
Sep 25 Python
python开发一款翻译工具
Oct 10 Python
Django使用中间件解决前后端同源策略问题
Sep 02 #Python
python elasticsearch环境搭建详解
Sep 02 #Python
关于pymysql模块的使用以及代码详解
Sep 01 #Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 #Python
Python 使用多属性来进行排序
Sep 01 #Python
详解一种用django_cache实现分布式锁的方式
Sep 01 #Python
python实现多进程通信实例分析
Sep 01 #Python
You might like
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
PHPMailer安装方法及简单实例
2008/11/25 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
Python递归函数实例讲解
2019/02/27 Python
python学习开发mock接口
2019/04/28 Python
python编写俄罗斯方块
2020/03/13 Python
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
道路交通安全实施方案
2014/03/12 职场文书
工程索赔意向书
2014/08/30 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
花木兰观后感
2015/06/10 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server