详解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相对导入
Jan 12 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
jupyter 导入csv文件方式
Apr 21 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
python利用后缀表达式实现计算器功能
Feb 22 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
Python Django ORM连表正反操作技巧
Jun 13 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带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python通用循环的构造方法实例分析
2018/12/19 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
Python连接Impala实现步骤解析
2020/08/04 Python
python FTP编程基础入门
2021/02/27 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
教师实习期自我鉴定
2013/10/06 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Python图片处理之图片裁剪教程
2021/05/27 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android