详解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函数编程的一些特性
Apr 13 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
python字典排序的方法
Oct 12 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
python字符串拼接+和join的区别详解
Dec 03 Python
Python中相见恨晚的技巧
Apr 13 Python
Python turtle编写简单的球类小游戏
Mar 31 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教程 变量定义
2009/10/23 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP使用数组实现队列
2012/02/05 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
php多进程应用场景实例详解
2019/07/22 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
filemanage功能中用到的lib.js
2007/04/08 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
python九九乘法表的实例
2017/09/26 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
学校门卫工作职责
2013/12/07 职场文书
美德好少年主要事迹
2014/01/29 职场文书
公证委托书
2014/08/01 职场文书
高中军训的心得体会
2014/09/01 职场文书
运动员入场词
2015/07/18 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS