Как сделать вернуть изображение PIL в памяти из приложения WSGI

Я прочитал много сообщений, таких как этот , в которых подробно рассказывается, как динамически возвращать изображение с помощью WSGI. Однако все примеры, которые я видел, открывают изображение в двоичном формате, читают его и затем возвращают эти данные (у меня это отлично работает).

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

Учитывая это:

fd = open( aPath2Png, 'rb')
base = Image.open(fd)
... lots more image processing on base happens ...

Я пробовал следующее:

data = base.tostring()
response_headers = [('Content-type', 'image/png'), ('Content-length', len(data))]
start_response(status, response_headers)
return [data]

WSGI вернет это клиенту в порядке. Но я получаю сообщение об ошибке, в котором говорится, что с возвращенным изображением что-то не так.

Какие еще есть способы?

6
задан Community 23 May 2017 в 11:51
поделиться