WEBサーバ上に保存された画像ファイルをPythonで読込み、Base64にエンコードしてからブラウザへ渡して画面に表示する。
Base64で渡すことで、ブラウザ側のCORS制約とかを気にしなくてよくなる。
スポンサーリンク
HTML
<img id="imgSample" src="{{imgSample}}">
画像ファイルのエンコード
import render_template
import base64
def encodeBase64():
#画像ファイルをバイナリで開く
with open(filePath, "rb") as f:
#ファイルの内容を読込み、Base64にエンコードする
bImgBase64 = base64.b64encode(f.read())
#バイナリを文字列に変換する
strImgBase64 = str(bImgBase64)
#文字列変換時の先頭の「b'」と末尾の「'」を取り除く
strImgBase64 = strImgBase64[2: len(strImgBase64) - 1]
#PNG形式のヘッダを付加する
imgSample = "data:image/png;base64," + strImgBase64
#テンプレートにbase64の画像データを渡す
return render_template('xxx/yyy.html', imgSample=imgSample)
ローカルから画像をWEBサーバにアップロードした後に表示する処理とかにも一応使える。
スポンサーリンク
スポンサーリンク