Flask Restplus возвращает поврежденный файл PNG - PullRequest
0 голосов
/ 17 мая 2018

Разработка API отдыха с использованием фляги с flask_restplus.Он успешно возвращает файл изображения, созданный библиотекой PIL, но файл поврежден и не может быть просмотрен.

@api.route('/annotate')
class Annotate(Resource):
        @api.representation('image/png')
        def post(self):
                file = io.BytesIO()
                img = Image.new('RGBA', (50, 50), (70, 0, 0, 255))
                img.save(file, 'png')
                file.seek(0)
                return send_file(file,
                                 as_attachment=True,
                                 attachment_filename='annotated.png',
                                 mimetype='image/png')

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Пожалуйста, обратитесь к этой проблеме github .

Swagger в основном испортил кодировку.Если вы делаете вызов через другого клиента, он должен работать правильно.

0 голосов
/ 18 мая 2018

Кажется, работает просто отлично. Я попробовал следующее, и все работает как положено. Вот и полученное изображение.

annotated.png

from flask import Flask, render_template, jsonify, send_file
from PIL import Image
import io
app = Flask(__name__)


@app.route('/image')
def image():
    file = io.BytesIO()
    img = Image.new('RGBA', (50, 50), (70, 0, 0, 255))
    img.save(file, 'png')
    file.seek(0)
    return send_file(
        file,
        as_attachment=True,
        attachment_filename='annotated.png',
        mimetype='image/png')

Запустите это так FLASK_APP=f1.py flask run.

...