Pythonで生成した画像をウェブページに表示

Pocket

Pythonで画像を生成するにはPillowを使うと簡単です。
これをウェブページに表示したいと思います。
調べると次のページが見つかりました。

pillowを使って生成した画像を、ファイルに保存せずにhtml表示【Django】 - Qiita(リンク切れ)

しかし、このままだとうまく動かない部分があり、またDjangoを使って説明している箇所がよく分かりませんでした。
少し修正したところ、うまくできたので、メモとして残しておきます。

macOS 10.14.6
Python 3.7
Google Chrome 77

#!/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
import sys
import io
from PIL import Image, ImageDraw
import base64

def get_base64():
  im = Image.new("RGB", (300, 200), "silver")
  draw = ImageDraw.Draw(im)
  draw.line((10, 10, 290, 190), fill="blue", width=2)
  buffer = io.BytesIO()
  im.save(buffer, format="PNG")
  b64 = base64.b64encode(buffer.getvalue()).decode()
  return b64

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
print("Content-Type: text/html; charset=utf-8")
print("")
print("<html>")
print("<body>")

b64 = get_base64()
print("<img src='data:image/png;base64," + b64 + "'>")

print("</body>")
print("</html>")

実行環境としてはMampを使っています。
ウェブページを表示する方法については「MampでPythonを使う方法 | You Look Too Cool」を参考にしてください。
画像を生成した後にBase64に変換しこれをimgタグにセットして表示します。

[ 2019年10月12日 | カテゴリー: Python, デジタル | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報