matplotlib.pyplot画图 图片的二进制流的获取方法


Posted in Python onMay 24, 2018

有些时候,我们需要画图后的二进制数据流,matplotlib没有提供相关的api,通过源码查看与百度,得到下面此方法

import matplotlib.pyplot as plt
import numpy as np
import io
x=np.arange(10)
y=x
#plt.plot(x,y)
#canvas = plt.get_current_fig_manager().canvas
#canvas.draw()
fig=plt.figure()
plt.plot(x,y)
canvas=fig.canvas
#上面这段代码和上面注释掉的代码效果一样

#方法1
buffer = io.BytesIO()
canvas.print_png(buffer)
data=buffer.getvalue()
buffer.close()
#方法2
buf, size = canvas.print_to_buffer()
image = Image.frombuffer('RGBA', size, buf, 'raw', 'RGBA', 0, 1)
buffer=io.BytesIO()
image.save(buffer,'PNG')
data=buffer.getvalue()
buffer.close()

with open('hhh.png',mode='wb') as f:
f.write(data)
#f=open('hh.png',mode='wb')
#f.write(data)
#f.close()

如果我们想把二进制的图片转成数组也是可以的,

buffer=io.BytesIO()
buffer.write(data)
img=Image.open(buffer)
img = np.asarray(img)

以上这篇matplotlib.pyplot画图 图片的二进制流的获取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自定义类的数组排序实现代码
Aug 28 Python
python非递归全排列实现方法
Apr 10 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
一百行python代码将图片转成字符画
Feb 19 Python
Python判断telnet通不通的实例
Jan 26 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
python求解汉诺塔游戏
Jul 09 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 #Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 #Python
在Django中输出matplotlib生成的图片方法
May 24 #Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 #Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 #Python
好的Python培训机构应该具备哪些条件
May 23 #Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 #Python
You might like
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
Python实现的一个简单LRU cache
2014/09/26 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Django组件content-type使用方法详解
2019/07/19 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
环卫工人慰问信
2015/02/15 职场文书
大二学年个人总结
2015/03/03 职场文书
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL