前提・実現したいこと
今、Flaskで画像を解析し、解析した結果の画像をHTMLに渡して表示するプログラムを書いています。
PIL画像をBASE64文字列に変換しHTMLに渡しているのですが、HTMLで画像が表示されません(エラーは起きません)。
試したこと
python
1@app.route("/img", methods=["POST", "GET"]) 2def img(): 3 img = cv2.imdecode(np.fromstring(request.files['video'].read(), np.uint8), cv2.IMREAD_UNCHANGED) 4 image = cv2.resize(img, (480, 300)) 5 pil_img = Image.fromarray(image.astype('uint8')) 6 7 file_object = io.BytesIO() 8 pil_img.save(file_object, 'PNG') 9 file_object.seek(0) 10 11 plot_url = base64.b64encode(file_object.getvalue()).decode("utf-8") 12 # plot_url = base64.b64encode(file_object.read()) 13 14 return '<img src="data:image/png;base64,{}">'.format(plot_url)
html
1<img sec="data:image/png;base64, {{ plot_url }}">
実行すると、文字列は指定されていますが、画像は表示されません。
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAEsCAIAAACUnPcNAAEAAElEQVR4nFz9z6+lybIkCpm5x7d2VlW3EIxASOjpjfn/ZzBgzogBDBiA9CSEeLdfd997K3OvC...
いくつかのBASE64を使用したやり方(b64encode(file_object.read())など)を試しましたが、結果は同じでした。お知恵を拝借させてください。
あなたの回答
tips
プレビュー