Как динамически отображать изображение PIL - PullRequest
1 голос
/ 16 февраля 2020

Я хочу обрезать свой файл изображения, используя библиотеку PIL , и отобразить его, используя Flask и Jinja.

Я пробовал этот код:

@bp.route('/media/<fname>')
def fetch_media(fname):
...
    image = Image.open(path)
    cropped_image = image.crop(box)
    return cropped_image

Это дает ошибку типа:

Функция просмотра не вернула правильный ответ. Тип возвращаемого значения должен быть строкой, dict, кортежем, экземпляром Response или вызываемым WSGI, но это должен быть Image.

Как я могу вернуть изображение на html страницу?

1 Ответ

1 голос
/ 16 февраля 2020

Не проверено, но, конечно, довольно близко к этому:

import io
from PIL import Image
from flask import Response

....
....
buffer = io.BytesIO()
cropped_image.save(buffer, format="PNG")
return Response(buffer.getvalue(), mimetype='image/png')
...