Tkinterに画像を追加するにはどうすればよいですか?Tkinterに画像を追加するには?
これは私に構文エラーを与えた:
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
Tkinterに画像を追加するにはどうすればよいですか?Tkinterに画像を追加するには?
これは私に構文エラーを与えた:
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
上記のコードには、「構文エラー」がない - があるとして、それのいずれかのいくつかの他のライン(上記で発生しましたが、あなたのコードのすべてではありませんあなたのpath
変数の宣言も)、または他のエラータイプがあります。
上記の例は、インタラクティブなインタプリタをテストしてうまくいきました。
次のコードは、私のマシン
あなたはPILパッケージは、Python 3.3.1
import Tkinter as tk
from PIL import ImageTk, Image
path = 'C:/xxxx/xxxx.jpg'
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
をインストールされていることを確認してください[MSC v.1600 32ビット(インテル)] Win32の14.May.2013上
これがために働きました上記のコードに従ってください。
from tkinter import *
from PIL import ImageTk, Image
import os
root = Tk()
img = ImageTk.PhotoImage(Image.open("True1.gif"))
panel = Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
これはpython 2.7の標準ライブラリではありません。したがって、これらが適切に動作すると、あなたは、Python 2.7を使用している場合は、最初にPILライブラリをダウンロードする必要がありますために:直接ダウンロードリンク:http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe それをインストールした後、次の手順に従います。
編集しscript.py
from Tkinter import *
from PIL import ImageTk, Image
app_root = Tk()
#Setting it up
img = ImageTk.PhotoImage(Image.open("app.png"))
#Displaying it
imglabel = Label(app_root, image=img).grid(row=1, column=1)
app_root.mainloop()
役に立てば幸い!ここで
あなたはPythonの2のために編集することができますPythonの3のための一例である。)
from tkinter import *
from PIL import ImageTk, Image
from tkinter import filedialog
import os
root = Tk()
root.geometry("550x300+300+150")
root.resizable(width=True, height=True)
def openfn():
filename = filedialog.askopenfilename(title='open')
return filename
def open_img():
x = openfn()
img = Image.open(x)
img = img.resize((250, 250), Image.ANTIALIAS)
img = ImageTk.PhotoImage(img)
panel = Label(root, image=img)
panel.image = img
panel.pack()
btn = Button(root, text='open image', command=open_img).pack()
root.mainloop()
これは、Pythonのバージョンの問題です。最新のものを使用している場合、古い構文は機能せず、このエラーが発生します。 @ Josav09のコードに従ってください。うまくいくでしょう。
実際のコードは、path
が指すファイルの形式に基づいてエラーを返す場合があります。つまり、.gif、.pgm(およびtk.TkVersion> = 8.6の場合は.png)などの一部の画像フォーマットは、すでにPhotoImage
クラスでサポートされています。以下は
は表示例です。
場合やtk.TkVersion < 8.6
:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
def download_images():
# In order to fetch the image online
try:
import urllib.request as url
except ImportError:
import urllib as url
url.urlretrieve("https://i.stack.imgur.com/IgD2r.png", "lenna.png")
url.urlretrieve("https://i.stack.imgur.com/sML82.gif", "lenna.gif")
if __name__ == '__main__':
download_images()
root = tk.Tk()
widget = tk.Label(root, compound='top')
widget.lenna_image_png = tk.PhotoImage(file="lenna.png")
widget.lenna_image_gif = tk.PhotoImage(file="lenna.gif")
try:
widget['text'] = "Lenna.png"
widget['image'] = widget.lenna_image_png
except:
widget['text'] = "Lenna.gif"
widget['image'] = widget.lenna_image_gif
widget.pack()
root.mainloop()
私はあなたが本 "PythonとTkinterのプログラミング" を読んでお勧めします。非常に良い本、徹底的に。あなたはおそらく低価格のためにeBayでそれらを見つけることができます。それはあなたが本当にTKinterを使いたいと仮定しています。私はTkinterの代わりにQtを推奨します – frankliuao