はじめに
Streamlit - Drawable Canvas を利用して、
Canvas 描かれた内容をもとに画像を更新し、
更新結果の画像を Canvas の背景に反映するというアプリを作っていた
その際に、背景の画像を更新すると何も表示されないことがあり、その時の解決方法のメモ
結論
st_canvas
の引数key
を設定しなければならない
問題発生時の状況
次のようにして Canvas を表示していた。
何度か更新すると Canvas に何も表示されなくなってしまった。
canvas_result = st_canvas(
background_image=Image.fromarray(background_image),
height=600,
width=600,
display_toolbar=False,
)
毎回表示されないわけではなく法則性がなく困っていたが、コンソールには次のような内容が表示されていた。
2024-04-15 18:07:23.450 MediaFileHandler: Missing file fb4b097d1706ab90da03289622f1c240944c60d5c72a77f5075ec68f.png
解決方法
試行錯誤したが、次のように引数key
を設定したら当事象が起きることは無くなった
canvas_result = st_canvas(
background_image=Image.fromarray(background_image),
height=600,
width=600,
display_toolbar=False,
key="canvas"
)