1. curl二进制图片上传
curl -F "imagefile=@test.jpg"
2. flask服务端解码保存成pil
import json, os
import os.path as osp
from PIL import Image
from io import BytesIO
from flask import Flask, request
app = Flask(__name__)
@app.route("/api/435i_classifier", methods=["POST"])
def test():
output_path = "output/flask"
if not osp.exists(output_path):
os.makedirs(output_path)
# 图片二进制
f = request.files['imagefile'].read()
print(f)
pil_image = Image.open(BytesIO(f))
name = osp.join(output_path, "test.jpg")
# f.save(name)
pil_image.save(name)
res = {}
res["code"] = 1
res["type"] = "person"
res["prob"] = 0.96
res = json.dumps(res)
return res
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8888, debug=True)
注意:
- f = request.files[‘imagefile’],是
<FileStorage: 'test.jpg' ('image/jpeg')>
不是图片的二进制字符串,可以用 f.save(name) 保存成图片 - f = request.files[‘imagefile’].read(),就是图片的二进制字符串。然后就是转成pil了。