详解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统计文件行数示例分享
Feb 21 Python
Python中的包和模块实例
Nov 22 Python
django中静态文件配置static的方法
May 20 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
python每天定时运行某程序代码
Aug 16 Python
python日期与时间戳的各种转换示例
Feb 12 Python
Python建造者模式案例运行原理解析
Jun 29 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
2021年pycharm的最新安装教程及基本使用图文详解
Apr 03 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
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
python中的格式化输出用法总结
2016/07/28 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
python 中的int()函数怎么用
2017/10/17 Python
pycharm修改file type方式
2019/11/19 Python
django-csrf使用和禁用方式
2020/03/13 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
数字漫画:comiXology
2020/06/13 全球购物
模具设计与制造专业推荐信
2014/02/16 职场文书
校庆活动方案
2014/03/31 职场文书
大学生十八大感想
2015/08/11 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android