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()
上一篇 下一篇

猜你喜欢

热点阅读