filedialogからファイルを選択して画像を表示しよう
今回はtkinterのfiledialogを使ってファイルを選択して、キャンバスに画像を表示してみましょう。
なお、filedialogの使い方やtkinterでの画像表示に関しては、以下の記事を参照してください。
filedialogからファイルを選択して画像を表示するプログラム
tkinterのfiledialogからファイルを選択して画像を表示するプログラムは、以下のようになります。
今回は基本的な処理のみを記述したかったので、画像データをあらかじめキャンバスサイズにしてあります。
画像の拡大縮小などの処理は省略しています。
このプログラムのポイントは、13行目の画像オブジェクトをグローバル変数にしているところです。
親ウィンドウを関数の外で定義しているため、画像オブジェクトをグローバル変数にしないと画像を表示しませんので注意が必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
### インポート import tkinter import tkinter.filedialog ### 定数 WIDTH = 640 # 幅 HEIGHT = 400 # 高さ ### 関数 def func(): ### グローバル変数 global image ### ファイルダイアログ name = tkinter.filedialog.askopenfilename(title="ファイル選択", initialdir="C:/", filetypes=[("Image File","*.png")]) ### 画像ロード image = tkinter.PhotoImage(file=name) ### キャンバスに表示 canvas.create_image(WIDTH/2, HEIGHT/2, image=image) ### メイン画面作成 main = tkinter.Tk() ### 画面サイズ設定 main.geometry("640x440") ### ボタン作成・配置 button = tkinter.Button(main, text="ファイル選択", command=func) button.pack() ### キャンバス作成・配置 canvas = tkinter.Canvas(main, width=WIDTH, height=HEIGHT) canvas.pack() ### イベントループ main.mainloop() |
親ウィンドウの「ファイル選択」ボタンを押下します。
表示する画像ファイルを選択します。
PNG形式の画像ファイルのみ選択できます。
選択した画像が表示されます。