Python

【Python】画像ファイルを読み込んでBase64にエンコードする

MAX

WEBサーバ上に保存された画像ファイルをPythonで読込み、Base64にエンコードしてからブラウザへ渡して画面に表示する。

Base64で渡すことで、ブラウザ側のCORS制約とかを気にしなくてよくなる。

スポンサーリンク

HTML

1<img id="imgSample" src="{{imgSample}}">

画像ファイルのエンコード

1import render_template
2import base64
3
4def encodeBase64():
5    
6    #画像ファイルをバイナリで開く
7    with open(filePath, "rb") as f:
8        #ファイルの内容を読込み、Base64にエンコードする
9        bImgBase64 = base64.b64encode(f.read())
10
11    #バイナリを文字列に変換する
12    strImgBase64 = str(bImgBase64)
13    #文字列変換時の先頭の「b'」と末尾の「'」を取り除く
14    strImgBase64 = strImgBase64[2: len(strImgBase64) - 1]
15    #PNG形式のヘッダを付加する
16    imgSample = "data:image/png;base64," + strImgBase64
17
18    #テンプレートにbase64の画像データを渡す
19    return render_template('xxx/yyy.html', imgSample=imgSample)

ローカルから画像をWEBサーバにアップロードした後に表示する処理とかにも一応使える。

スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました