详解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实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
基于python实现把图片转换成素描
Nov 13 Python
用Python生成HTML表格的方法示例
Mar 06 Python
python如何查看安装了的模块
Jun 23 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
Python装饰器详细介绍
Mar 25 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
非常好用的Zend Framework分页类
2014/06/25 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
Python面向对象之Web静态服务器
2019/09/03 Python
python3实现单目标粒子群算法
2019/11/14 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
python如何快速拼接字符串
2020/10/28 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
艺术用品:Arteza
2018/11/25 全球购物
实习求职信
2013/12/01 职场文书
物业总经理岗位职责
2014/02/28 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
商务经理岗位职责
2014/08/03 职场文书
节约用电倡议书
2015/04/28 职场文书
2015年端午节活动策划书
2015/05/05 职场文书