つきすけ の コーディング記

細かいところで嫌にならないように、小さいことでも解説していくブログ。たまに関係ないことも書く。

Python の Tkinter で 画像を表示する

Pythonにて、Tkinterのバージョンが8.6以前の場合にpngの画像を表示する方法。

環境が限定されている中で必要に迫られることもあるのです。

  • Python3.6.1
  • Tkinter8.5

画像を表示するには、Python標準モジュールのPILというものを使用する。

今回はこの画像をWindowに表示する。
f:id:Tsukisuke:20190111171953p:plain

#coding:utf-8
import tkinter
from PIL import Image, ImageTk

# windowを描画
window = tkinter.Tk()
# windowサイズを変更
window.geometry("600x400")
# windowタイトルを設定
window.title("Welcome to the Tkinter")

# 画像を表示するための準備
img = Image.open('picture_name.png')
img = ImageTk.PhotoImage(img)
# 画像を表示するためのキャンバスの作成(黒で表示)
canvas = tkinter.Canvas(bg = "black", width=400, height=300)
canvas.place(x=100, y=50) # 左上の座標を指定
# キャンバスに画像を表示する。第一引数と第二引数は、x, yの座標
canvas.create_image(30, 30, image=img, anchor=tkinter.NW)

window.mainloop()

Python2系の場合は tkinterTkinter にすればいけるはず。

完成図
f:id:Tsukisuke:20190111172407p:plain

もちろん、canvasサイズと画像サイズを合わせれば、うしろの黒いやつは見えなくなります。