Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python tkinterのキャンバスにPNG画像を表示する方法をわかりやすく解説

Pythonのtkinterで画像を扱うには、PIL(Pillow)ライブラリを利用するのが一般的です。Pillowには、JPEGやPNGなどさまざまな形式の画像を読み込み・操作するための便利な関数が数多く用意されています。まだインストールしていない場合は、pip install Pillowで導入できます。

キャンバス(Canvas)ウィジェットに画像を表示するには、create_image(x, y, image, **options)コンストラクタを使用します。このコンストラクタに読み込んだ画像オブジェクトを渡すことで、指定した座標を基準にキャンバス上へ画像が描画されます。

サンプルコード

# 必要なライブラリをインポート
from tkinter import *
from PIL import Image, ImageTk

# tkinterのフレーム(ウィンドウ)のインスタンスを作成
win=Tk()

# ウィンドウのサイズを設定
win.geometry("700x600")

# キャンバスウィジェットを作成
canvas=Canvas(win, width=700, height=600)
canvas.pack()

# PNG画像を読み込む
img=ImageTk.PhotoImage(file="Monalisa.png")

# キャンバスに画像を追加
canvas.create_image(350, 400, image=img, anchor="center")

win.mainloop()

実行結果

上記のコードを実行すると、キャンバス上に画像が表示されたウィンドウが立ち上がります。

Python tkinterのキャンバスにPNG画像を表示する方法をわかりやすく解説

ポイント

anchor="center"を指定すると、指定した座標(ここでは350, 400)が画像の中心になるように配置されます。デフォルトでは左上隅が基準となるため、配置位置を調整したい場合はanchorオプションを活用するとよいでしょう。

また、ImageTk.PhotoImageで作成したオブジェクトは必ず変数に保持しておいてください。参照が失われてガベージコレクションされると、画像がキャンバスから消えてしまうという落とし穴があるため注意が必要です。


  1. Tkinterで画像をボタンとして使う方法をわかりやすく解説

    Tkinterでは、画像ファイルをそのままボタンとして表示することができます。この記事では、角丸の画像ボタンを作成する方法を、実際のコード例とともに解説します。ここで紹介する手法は、フォーム、ゲーム、ダイアログボックスなど、さまざまなアプリケーションに応用できる汎用的なテクニックです。 画像ボタンの作り方の基本 Tkinterで見栄えの良い角丸ボタンを作る最も簡単な方法は、あらかじめ用意したボタン用の画像を、クリック可能なウィジェットとして配置することです。これを実現するのがPhotoImage()関数で、指定した画像ファイルを読み込んでボタンに渡すことができます。 具体的には、以下の手順で画

  2. Python Tkinterでキャンバス上の画像を中央に配置する方法

    Tkinterを使ってGUIアプリケーションを開発している際、Tkinterのキャンバス(Canvas)上に画像を読み込みたいケースはよくあります。本記事では、その画像をキャンバスの中央に配置する方法を解説します。anchorパラメータとはデフォルトでは、キャンバスは画像を自身の幅と高さに従って配置します。しかし、anchor(アンカー)パラメータに方向の値を渡すことで、画像の位置を任意の方向(N:北、S:南、E:東、W:西、NS、EWなど)に操作できます。アンカーは画像関数と一緒に呼び出されるパラメータで、キャンバス内における画像の方向や位置を定義します。このanchorパラメータを活用すれ