簡體   English   中英

使用 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&#39;iVBOR... ,即圖像b&#39;i的開頭似乎有一些額外的字符。

通過模板引擎發送二進制圖像數據的正確方法是什么。

好的,找到了解決方案。

更改代碼如下

sp = base64.b64encode(fp.read()).decode()
sg = base64.b64encode(fp.read()).decode()

做這項工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM