使用 Python-Flask 模板引擎显示图像
Display image with Python-Flask template engine
我想通过 Flask 将二进制图像数据发送到模板(以避免浏览器缓冲)。 Python文件如下:
#!/usr/bin/python3
import base64
from flask import Flask,make_response,render_template
app = Flask(__name__)
@app.route('/')
def showdata():
fp = open("sp.png","rb")
sp = base64.b64encode(fp.read())
fp.close()
fp = open("sg.png","rb")
sg = base64.b64encode(fp.read())
fp.close()
wav = None
resp = make_response(render_template('index.html',sg=sg,sp=sp))
return resp
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3000,debug=True)
HTML 文件是:
<!DOCTYPE html>
<html>
<head>
<title>Show Timeswipe Measurements!</title>
</head>
<body>
<!-- show data and spectrum -->
<img id='spectrum' src='data:image/png;base64,{{ sp }}'>
<!-- show spectrogram -->
<img id='spectrogram' src='data:image/png;base64,{{ sg }}'>
<!-- show wav -->
</body>
</html>
图片未显示。 src是<img id='spectrum' src='data:image/png;base64,b'iVBOR...
,即图片开头好像多了一些字符b'i
.
通过模板引擎发送二进制图像数据的正确方法是什么。
好的,找到解决方案了。
修改代码如下
sp = base64.b64encode(fp.read()).decode()
sg = base64.b64encode(fp.read()).decode()
完成任务。
我想通过 Flask 将二进制图像数据发送到模板(以避免浏览器缓冲)。 Python文件如下:
#!/usr/bin/python3
import base64
from flask import Flask,make_response,render_template
app = Flask(__name__)
@app.route('/')
def showdata():
fp = open("sp.png","rb")
sp = base64.b64encode(fp.read())
fp.close()
fp = open("sg.png","rb")
sg = base64.b64encode(fp.read())
fp.close()
wav = None
resp = make_response(render_template('index.html',sg=sg,sp=sp))
return resp
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3000,debug=True)
HTML 文件是:
<!DOCTYPE html>
<html>
<head>
<title>Show Timeswipe Measurements!</title>
</head>
<body>
<!-- show data and spectrum -->
<img id='spectrum' src='data:image/png;base64,{{ sp }}'>
<!-- show spectrogram -->
<img id='spectrogram' src='data:image/png;base64,{{ sg }}'>
<!-- show wav -->
</body>
</html>
图片未显示。 src是<img id='spectrum' src='data:image/png;base64,b'iVBOR...
,即图片开头好像多了一些字符b'i
.
通过模板引擎发送二进制图像数据的正确方法是什么。
好的,找到解决方案了。
修改代码如下
sp = base64.b64encode(fp.read()).decode()
sg = base64.b64encode(fp.read()).decode()
完成任务。