40

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()
4

9 に答える 9

37

Python 3.3.1 [MSC v.1600 32 ビット (Intel)] 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()
于 2013-05-14T06:29:21.057 に答える
17

上記のコードには「構文エラー」はありません。他の行で発生したか(インポートもpath変数の宣言もないため、上記はすべてのコードではありません)、または他のエラータイプが発生しました。

上記の例は、インタラクティブインタプリタでテストして、私にとってはうまくいきました。

于 2012-04-13T02:56:35.470 に答える
10

これは、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()

ここに画像の説明を入力

于 2017-04-20T02:17:31.530 に答える
7

次のコードは私のマシンで動作します

  1. コードに何かが欠けている可能性があります。
  2. コードファイルのエンコーディングも確認してください。
  3. PILパッケージがインストールされていることを確認してください

    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()
    
于 2012-04-17T06:50:13.413 に答える
5

Python 2.7 の標準ライブラリではありません。したがって、これらが正しく機能するために、また Python 2.7 を使用している場合は、最初に PIL ライブラリをダウンロードする必要があります: 直接ダウンロード リンク: http://effbot.org/downloads/PIL-1.1.7.win32-py2.7. exe インストール後、次の手順に従います。

  1. script.pyが、表示したい画像と同じフォルダーにあることを確認してください。
  2. 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()
    

それが役立つことを願っています!

于 2014-10-18T14:33:16.390 に答える