详解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脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
Python 数据结构之旋转链表
Feb 25 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
Python3基于sax解析xml操作示例
May 22 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python pandas用法最全整理
Aug 04 Python
python字典key不能是可以是啥类型
Aug 04 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 Python
深度学习小工程练习之垃圾分类详解
Apr 14 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开发模式(简写版)
2007/03/15 PHP
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
javascript时间函数基础介绍
2013/03/28 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
javascript 闭包详解
2015/07/02 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
劳动工资科岗位职责范本
2014/03/02 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
个人欠款担保书
2014/05/20 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL