flask返回圖片流

boye169發表於2024-10-18
# -*- coding: utf-8 -*-
import os
from io import BytesIO
from PIL import Image
from flask import Flask, make_response,send_file

app = Flask(__name__)
app.config['SECRET_KEY'] = 'test'
BASE_PATH = os.path.dirname(os.path.abspath(__file__))

def get_image_stream(name):
    with open(f'{name}.jpg', 'rb') as image_file:
        image_stream = image_file.read()
    return image_stream

@app.route('/image/<image_id>')
def image(image_id):
    if image_id=="1":
        # 將圖片傳送到瀏覽器
        return send_file('1.jpg', mimetype='image/jpeg')
    elif image_id=="2":
        return get_image_stream(2)

    else :
        img = Image.new('RGB', (200, 200), color = (73, 109, 137))
        out = BytesIO()
        img.save(out, 'jpeg')
        out.seek(0)
        resp = make_response(out)
        resp.content_type = 'image/jpeg'
        return resp


@app.route('/<image_id>')
def index(image_id):

    return f"<img src='/image/{image_id}'>"

if __name__ == '__main__':
    app.run( host='0.0.0.0', port=9181, debug=True)

 

相關文章