1

使用带有 flask_restplus 的烧瓶开发一个 REST API。它成功返回了一个由 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')
4

2 回答 2

0

它似乎工作得很好。我刚刚尝试了以下操作,它按预期工作。这也是生成的图像。

带注释的.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

于 2018-05-18T02:11:29.247 回答
0

请参考这个github 问题

Swagger 基本上搞乱了编码。如果您通过另一个客户端拨打电话,它应该可以正常工作。

于 2018-06-06T14:17:58.457 回答