【完全独学Python】Tkinterの画像を表示する方法はこれだけ覚えて!

デスクトップアプリ

こんにちは!ゆーや(@yuyamanm118712)です。

こちらのページでは完全独学でWebプログラマとなった私が

デスクトップアプリには必須!!Tkinterでウィンドウに画像を表示する方法をご紹介します!

ゆーや
ゆーや

Tkinterの基本的な使い方は以下の記事を見てね!

Tkinterで「画面に画像を表示する」ためにはPhotoImagepillowというライブラリを使います!

この記事を通して、PhotoImagepillowを使いこなせるようになりましょう!

ゆーや
ゆーや

pillowが使えれば問題ないけど、

インストールが必要なので、状況に応じて選択してね!

ゆーや
ゆーや

アプリ制作楽しいですよね!

そんなプログラミングに楽しさを覚えたあなた!

ゆーや
ゆーや

勉強し始めて、IT業界に興味があるけど、自信がない。

僕も同じでした。なので、一人でコツコツ、1年間も独学で勉強…
そのあと、一人で転職活動…

心細かったのを覚えています…

ゆーや
ゆーや

しかし、時代は変わり、

プログラミングを学び、転職をサポートしてくれるスクールがあります!

その名も…

【Winスクール】

初心者から経験者まで対応できる300以上の講座ラインナップで、スキルアップを目指す方に最適!プロ講師による丁寧な「個人レッスン」で、あなたに合わせた指導を受けられます。

  • オンライン or 対面で選べる受講スタイル:あなたのライフスタイルに合わせて柔軟に受講可能!
  • 実践重視のカリキュラム:現場経験豊富な講師陣が指導。学んだスキルをそのまま活かせる即戦力を養成。
  • 年間1500社の企業研修実績で、ビジネスシーンに即した指導内容が魅力!

就職・転職サポートも充実し、受講中はもちろん卒業後も安心。まずは無料体験で、その質の高さを体感してください!

まずは無料体験・説明会に参加を♪【Winスクール】

ゆーや
ゆーや

「完全独学Python」で学習しているあなたなら大丈夫!

僕みたいにリモートワークで自由な生活を手に入れよう!

まずは無料体験・カウンセリングを受けてみよう!

もちろん、Pythonコースもあるよ!

画像表示に使うライブラリ

ゆーや
ゆーや

PhotoImagepillowどちらも画像を表示するライブラリだけど

どんな違いがあるのかな!

PhotoImage

メリット

  1. 簡単に使える
  2. 軽量!
ゆーや
ゆーや

インストールなしで使えるpython標準ライブラリだよ!

デメリット

  1. 対応フォーマットの制限…
  2. 機能の制限…
ゆーや
ゆーや

PNG,GIFなどしか対応していないよ!

単純に画像を表示する機能しかないので注意

pillow

メリット

  1. 多様な画像フォーマットに対応!
  2. 豊富な機能!

デメリット

  1. 追加のインストールが必要
  2. やや複雑
ゆーや
ゆーや

コッチを習得すれば画像関係は問題なし!

画像表示の基本

ゆーや
ゆーや

ここから「sample.png/ sample.jpg」という画像を用意して、

pythonファイルと同じ階層に配置しておいてね!

PhotoImage

import tkinter as tk
from tkinter import PhotoImage

# メインウィンドウの作成
root = tk.Tk()
root.title("tkinter 画像表示 - 完全独学Python")  # ウィンドウタイトル
root.geometry("1200x300")  # ウィンドウサイズ

# 画像の読み込み
img = PhotoImage(file="example.png")  # 画像ファイルのパスを指定

# ラベルに画像を設定して配置
label = tk.Label(root, image=img)
label.pack()

# ウィンドウを表示
root.mainloop()
ゆーや
ゆーや

画像が表示されたね!

画像が途中で切れちゃう人はウィンドウのサイズを大きくしてみよう!

pillow

import tkinter as tk
from PIL import Image, ImageTk

# メインウィンドウの作成
root = tk.Tk()
root.title("tkinter 画像表示 - 完全独学Python")  # ウィンドウタイトル
root.geometry("1200x300")  # ウィンドウサイズ

# 画像の読み込み
img = Image.open("example.jpg")  # 画像ファイルのパスを指定
tk_img = ImageTk.PhotoImage(img)  # Tkinterで使えるように変換

# ラベルに画像を設定して配置
label = tk.Label(root, image=tk_img)
label.pack()

# ウィンドウを表示
root.mainloop()
ゆーや
ゆーや

こちらも問題なく表示されたね!

JPGもちゃんと表示されている!

画像のサイズ変更

PhotoImage

ゆーや
ゆーや

PhotoImageだけでは縮小ができません…

pillow

import tkinter as tk
from PIL import Image, ImageTk

# メインウィンドウの作成
root = tk.Tk()
root.title("tkinter 画像表示 - 完全独学Python")  # ウィンドウタイトル
root.geometry("500x300")  # ウィンドウサイズ

# 画像の読み込みとリサイズ
img = Image.open("example.jpg")  # 画像ファイルのパスを指定
img = img.resize((200, 200))  # 画像のサイズを指定
tk_img = ImageTk.PhotoImage(img)  # Tkinterで使えるように変換

# ラベルに画像を設定して配置
label = tk.Label(root, image=tk_img)
label.pack()

# ウィンドウを表示
root.mainloop()
ゆーや
ゆーや

横も縦も縮小されたね!

ただし、画像の比をきちんと把握しておかないときれいに縮小できないね!

画像をCanvasに表示

pillow

import tkinter as tk
from PIL import Image, ImageTk

# メインウィンドウの作成
root = tk.Tk()
root.title("tkinter 画像表示 - 完全独学Python")  # ウィンドウタイトル
root.geometry("1200x300")  # ウィンドウサイズ

# キャンバスの作成
canvas = tk.Canvas(root, width=500, height=300)
canvas.pack()

# 画像の読み込み
img = Image.open("example.jpg")  # 画像ファイルのパスを指定
tk_img = ImageTk.PhotoImage(img)  # Tkinterで使えるように変換

# 画像をキャンバスに表示
canvas.create_image(250, 150, image=tk_img)  # 座標(250, 150)に画像を表示

# ウィンドウを表示
root.mainloop()
ゆーや
ゆーや

Tkinterでは、canvasにcreate_imageで画像を配置するのが基本!

ここまできっちり抑えておこう!

コメント

タイトルとURLをコピーしました