Flask Restplus returns 损坏的 PNG 文件
Flask Restplus returns a corrupted PNG file
使用烧瓶和 flask_restplus 进行休息 API。成功returns一个图像文件,由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')
它似乎运行良好。我只是尝试了以下并且它按预期工作。这也是生成的图像。
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
。
请参考此github issue。
Swagger 基本上搞乱了编码。如果您通过另一个客户端拨打电话,它应该可以正常工作。
使用烧瓶和 flask_restplus 进行休息 API。成功returns一个图像文件,由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')
它似乎运行良好。我只是尝试了以下并且它按预期工作。这也是生成的图像。
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
。
请参考此github issue。
Swagger 基本上搞乱了编码。如果您通过另一个客户端拨打电话,它应该可以正常工作。