flask显示二进制的图片的方法
2018-06-22 本文已影响0人
justonlyyo
因为比较简单,就直接上代码(片段)
from flask import Flask
from flask import send_file
from flask import make_response
from io import BytesIO
app = Flask(__name__)
@app.route("/show_image")
def show_image():
"""从mongodb读取二进制图片数据并显示"""
file_name = "你的图片的名称"
file_type = "png"
file_data = get_data() # 读取二进制的图片文件,具体方法略
resp = make_response(send_file(BytesIO(file_data), attachment_filename=file_name, as_attachment=True,
mimetype=file_type))
"""把文件名的中文从utf-8转成latin-1,这是防止中文的文件名造成的混乱"""
resp.headers["Content-Disposition"] = "attachment; filename={}".format(file_name.encode().decode('latin-1'))
return resp
如果是本地显示二进制的图片就更简单了
from io import BytesIO
from PIL import Image
import time
image = get_data() # 读取二进制的图片文件,具体方法略
store = BytesIO(initial_bytes=image)
"""
也可以这样:
store = BytesIO()
store.write(image)
"""
img = Image.open(store)
img.show()
time.sleep(3)
img.close()