爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8544|回复: 6

[源代码] 图像直接以流的形式发送,数据不落地

[复制链接]

新浪微博达人勋

发表于 2022-4-21 17:03:46 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
数据的存在形式有2种:

1、落地数据:

就是被持久化的数据,这种数据一般放在硬盘或是其他的持久化存储设备里,例如:图片、系统日志、在页面上显示的数据以及保存在关系数据库里的数据等等,落地数据一定会有一个固定的载体,他们不会瞬时消失的。

2、不落地数据:

一般指存储在内存或者是网络传输里的数据,这些数据是瞬时,使用完毕就会消失,例如:我们在浏览器发送给服务器的请求;从数据库读取出来的一直到页面展示前的数据等等。

有时候,我们画的图需要以最快速度发给别人,
这时就不需要将plt对象保存为图片文件,而是直接以“流”的形式发出去。

import io
import matplotlib.pyplot as plt

plt.plot([1,2,1])

# 转为二进制流:
canvas = plt.get_current_fig_manager().canvas
canvas.draw()
buffer = io.BytesIO()
canvas.print_png(buffer)
data=buffer.getvalue()
buffer.close()

# data就代表图了

# 作为验证,将流数据写成图:
f=open(r'D:\写成图.png','wb')
f.write(data)
f.close()



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-4-22 09:18:19 | 显示全部楼层
不需要转canvas,plt.savefig 就可以直接输入io对象

import io
import matplotlib.pyplot as plt

plt.plot([1, 2, 1])
buffer = io.BytesIO()
plt.savefig(buffer, format='png')
data = buffer.getvalue()
buffer.close()

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-22 21:38:04 | 显示全部楼层
1099221723 发表于 2022-4-22 09:18
不需要转canvas,plt.savefig 就可以直接输入io对象

import io

谢谢指导,,后天我试试
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-22 22:28:55 | 显示全部楼层
1099221723 发表于 2022-4-22 09:18
不需要转canvas,plt.savefig 就可以直接输入io对象

import io

帅哥,我刚试了,这2种写法都行,速度没差别
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-5-5 09:17:00 | 显示全部楼层
请教一个画图问题。画图时将图片存为svg格式后,在网站上打开时加载过慢,可以如何解决呢?改变图片格式?还是降低dpi?不知道如果减小生成的图片的大小会不会影响在网站上展示时的大小?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-5-5 09:19:35 | 显示全部楼层
还有个问题。。。为啥一般平台网站上的图片要么是png格式,要么是svg格式呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-10-27 22:32:42 | 显示全部楼层
妙啊,正好这里不知道怎么处理

虽然之前我都是想办法弄成.svg的再传到前端去的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表