前提・実現したいこと
Python(Flask)を使って画像を処理するAPIを作りたい。
画像を保存する処理が入ってしまうと、使わない画像が溜まってしまうため、cv2.imwriteを使わずに、画像ファイルをpostする(base64形式に変換する)方法を探している。
こちらの記事を参考にコードを作成したのですが、画像ファイルをbase64に変換する前のimwrite
やopen
を使わずにbase64形式に変換する方法が、そもそもそういったことが可能かどうかも含めわかりません。
該当のソースコード
Python
1from flask import * 2import json 3import io 4from flask_cors import CORS 5import numpy as np 6import cv2 7import base64 8 9@app.route('/test', methods=["POST"]) 10def post(): 11 print("POSTED") 12 stream = request.files["image"].stream 13 img_array = np.asarray(bytearray(stream.read()), dtype=np.uint8) 14 img = cv2.imdecode(img_array, 0) 15 cv2.imwrite('result.png', img) 16 with open('result.png', "rb") as f: 17 img_base64 = base64.b64encode(f.read()).decode('utf-8') 18 19 response = make_response(img_base64) 20 response.headers.set('Content-Type', request.content_type) 21 22 return response
試したこと
画像をdecode, encodeする際にそれぞれどの様なデータになっているのか、そもそもなぜ画像をPOSTする際にbase64などに変換しないといけないのかなど調べているのですが、なかなかこれという答えに辿り着けずにいます。
補足情報(FW/ツールのバージョンなど)
Flask 1.1.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/02 00:13