当前位置:
首页 > 编程开发 > python入门教程 >
-
通过案例实战深入认识python图像处理库Pillow
什么是Pillow
首先我们需要了解一下PIL(Python Imaging Library),它是Python2中非常强大的图像处理标准库,但只支持到Python2.7。Pillow是在PIL的基础上创建了兼容的版本,支持最新Python 3.x,又加入了许多新特性。
安装
pip install pillow
其中Image是pillow库的一个常用的模块,提供了很多图片处理的方法。
pillow图像处理的简单使用
图片信息显示
from PIL import Image # 操作图片的类型 # 加载图片 image = Image.open('test1.jpg') # 打开图片 # image.show() # 查看图像大小(宽度,高度)(6621, 4414) print(image.size) # # 获取模式 print(image.mode) # RGB # # # 显示的文件的格式 JPEG print(image.format) # # # 图片的详细信息{'jfif': 257, nsity': (72, 72......), print(image.info) # # # 保存为另一张图片(可以更改图片的格式) image.save('test2.bmp')
#Python视频教程、源码、电子书、软件、解答、学习路线图、加群 924040232
修改图片
修改图片尺寸
from PIL import Image, ImageFilter # 读取图片 image = Image.open('test.jpg') print(image.size) # 修改图片的尺寸,以像素为单位)以二元组表示:(宽度,高度) image1 = image.resize((image.size[0]//3, image.size[1]//3)) # image1.show() # # # 保存下来 image1.save('test.jpg')
裁剪旋转图片
from PIL import Image, ImageFilter # 读取图片 image = Image.open('test1.jpg') # 裁剪图片 # 设置一个边缘间距[left, upper, right, lower] 左上角和右下角 image1 = image.crop(box=(0, 0, 2000, 2000)) # 600 * 336 image1.show() # 图片旋转 image2 = image.rotate(45) image2.show()
为图片添加水印
可以为一张图片加上二维码
from PIL import Image # 读取图片 image = Image.open('test.jpg') # 读取粘贴的图片 paste_image = Image.open('erweima.jpg') 如果需要粘贴的图片较大,可以通过resize()修改一下尺寸 image.paste(paste_image) # 默认把图片粘贴到左上角 image.show()
from PIL import Image # 读取图片 image = Image.open('test.jpg') # 读取粘贴的图片 paste_image = Image.open('erweima.jpg') # 也可以指定需要粘贴的位置 设置二维码位置为右下角 position = (image.size[0] - paste_image.size[0], image.size[1] - paste_image.size[1]) image.paste(paste_image,position) image.show() image.save("syzp.jpg")
生成gif图片
from PIL import Image images = [] for i in range(5): im = Image.open('mkgif/{}.png'.format(i + 1)) images.append(im) images[0].save("test.gif", save_all=True, loop=True, append_images=images[1:], duration=500)
出处:https://www.cnblogs.com/hahaa/p/15913127.html
最新更新
Python获取微信好友数据
Python 的排序方法 sort 和 sorted 的区别
WinForm轻松实现自定义分页 (转载)
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
在win系统安装配置 Memcached for PHP 5.3 图文
箱图在数据预处理中的应用
Python WEB开发:用Tornado框架制作简易【表
自从学会了用python解析视频,都不用去找
Python代码阅读(第50篇):对列表间隔取
Python爬虫+数据分析+可视化展示,分析《
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
链接服务器读取Mysql---出现消息 7347,级别
SQL Server解惑——为什么你拼接的SQL语句换
MySQL视图了解一下
laf.js - 开源的云开发框架(README.md)
javascript创建对象
Node.js 源码分析 - 从 main 函数开始
Node.js 源码分析 - 原生模块(C++模块)的注册
ECharts图标中用的js相关的处理方法
GoJS 使用笔记
单元测试 - 测试场景记录
Node.js 源码分析 - 加载 js 文件
ES6入门
聊聊动效降级