tkinterでJPEG画像を表示しよう
前回は Pillowを使ってJPEG画像を表示しました。
今回は tkinterでJPEG画像を表示してみましょう。
tkinterは標準でJPEG画像を表示できませんので、前回同様 JPEG画像の表示にはPillowを使います。
tkinterでJPEG画像を表示するプログラム
tkinterでJPEG画像を表示するプログラムは、以下の通りです。
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 |
### インポート import tkinter from PIL import Image,ImageTk ### 画像ロード image = Image.open("photo.jpg") ### サイズ縮小 w_size = int(image.width/4) h_size = int(image.height/4) ### キャンバス作成 canvas = tkinter.Canvas(width=w_size, height=h_size) ### PhotoImage変換 tk_image = ImageTk.PhotoImage(image=image.resize((w_size,h_size))) ### 画像描画 canvas.create_image(0, 0, anchor="nw", image=tk_image) ### キャンバス表示 canvas.pack() ### イベントループ canvas.mainloop() |
プログラムを実行すると、以下の画像が表示されます。
スクリプト解説
3行目
Imageモジュールと tkinter用の ImageTkモジュールを呼び出します。
9、10行目
キャンバスのサイズを指定するために、ロードした画像のサイズを取得します。
今回使用した画像はサイズが大きいので、元画像のサイズの1/4にしています。
13行目
9、10行目で取得したサイズをキャンバスの画面サイズに指定します。
16行目
ImageTk.PhotoImage()関数でロードした画像を tkinterで使用するフォーマットに変換します。
この時、画像の表示サイズを resize()メソッドで縮小しています。
19行目
create_image()メソッドで画像を表示します。
create_image()の使い方は、こちらの記事を参照してください。