pythonのtkinterでcanvasに画像ファイルを読み込み表示

コンピュータ

画像ファイルを読み込み表示するサンプルプログラムを試して見ました。

# tkinter04.py

# canvasで画像ファイルを表示

import tkinter as tk

root = tk.Tk()
root.geometry("640x480")

canvas = tk.Canvas(root, bg='blue')
canvas.pack()
canvas.place(x=0, y=0, relwidth=1.0, relheight=1.0)
img = tk.PhotoImage(file='00036-214376861.png')
canvas.create_image(0, 0, image=img, anchor=tk.NW)

root.mainloop()

今回はtk.PhotoImage()でpng形式の画像ファイルを読み込んでいます。
ただ、対応する画像ファイルの種類が少ないのでPillowのImageオブジェクトを変換する方法が一般的?らしいです。(未確認)多分OpenCVの画像オブジェクトなどから変換も出来ると思いますのでOpenCVのフィルターなどで画像加工をした結果の表示など少し手の混んだプログラムにも対応できそうです。
canvas.create_image()でcanvas上に画像オブジェクトを表示しています。その際anchor=tk.NW左上を起点としx,y座標の0, 0,から表示するように指定しています。指定しない(デフォルト)場合の起点が中心になるらしいです。(未確認)

コメント