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

作者:daxiaofan 时间:2021-03-25 09:38:00 

有些时候,我们需要画图后的二进制数据流,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)

来源:https://blog.csdn.net/daxiaofan/article/details/73302718

标签:matplotlib,画图,二进制
0
投稿

猜你喜欢

  • aspjpeg组件asp代码实例使用详解

    2008-12-14 10:33:00
  • 大幅优化MySQL查询性能的奇技淫巧

    2024-01-27 15:32:52
  • django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例

    2021-04-17 02:03:04
  • 商业价值与用户价值的平衡

    2008-12-10 18:42:00
  • IE中不可遍历的属性

    2010-01-19 13:47:00
  • 在IE下用getAttribute时要小心

    2008-08-21 12:54:00
  • Python调用百度OCR实现图片文字识别的示例代码

    2021-04-07 14:21:50
  • opencv实现矿石图片检测矿石数量

    2021-08-26 02:17:39
  • Softmax函数原理及Python实现过程解析

    2022-12-15 02:18:24
  • 宽屏不是用来阅读的

    2009-04-05 15:59:00
  • python实现自动解数独小程序

    2023-03-28 12:15:19
  • python实现数独算法实例

    2022-11-12 05:31:12
  • 浅谈MySQL中四种常用存储引擎

    2024-01-23 00:10:29
  • JS实现的倒计时效果实例(2则实例)

    2023-08-23 17:12:05
  • pip和pygal的安装实例教程 <font color=red>原创</font>

    2021-05-22 18:35:30
  • MySQL的表级锁,行级锁,排它锁和共享锁

    2024-01-28 15:44:22
  • ASP.NET Core Authentication认证实现方法

    2023-07-21 12:21:31
  • 利用Python将list列表写入文件并读取的方法汇总

    2023-12-07 13:40:07
  • Python常见报错解决方案总结(新手拯救指南)

    2021-12-19 02:43:23
  • 详解python播放音频的三种方法

    2021-12-16 09:19:11
  • asp之家 网络编程 m.aspxhome.com