详解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 相关文章推荐
深入学习Python中的装饰器使用
Jun 20 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
目前最全的python的就业方向
Jun 05 Python
python实现比较文件内容异同
Jun 22 Python
python高阶爬虫实战分析
Jul 29 Python
Django Rest framework之权限的实现示例
Dec 17 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
详解Python 最短匹配模式
Jul 29 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
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
php实现文件上传基本验证
2020/03/04 PHP
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
vue.js中created方法作用
2018/03/30 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python中非常实用的一些功能和函数分享
2015/02/14 Python
Python实现批量修改文件名实例
2015/07/08 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
Tensorflow 实现释放内存
2020/02/03 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
kfc实习自我鉴定
2013/12/14 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
普通党员整改措施
2014/10/24 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers
Linux中如何安装并部署Redis
2022/04/18 Servers