Python Tkinter - 从PhotoImage中查找图像文件路径

时间:2014-09-01 07:41:31

标签: python-2.7 tkinter photoimage

我在tkinter中有一个名为al_p4的PhotoImage,但我希望能够打印图像的文件路径。谁能帮忙。这是我的代码:

al_p4 = Image.open("Media/DVD/image.jpg").resize((100, 150), Image.ANTIALIAS)
al_p4 = ImageTk.PhotoImage(al_p4)

先谢谢你们;)

2 个答案:

答案 0 :(得分:1)

因为我仍然无法完全解释你的意思,所以这里有四个关于如何进行打印的不同答案。

如果您只需要打印它并且路径始终是常量,请使用:

print("Media/DVD/image.jpg")

如果您需要打印某些内容并且路径不同,请尝试:

filepath = "Media/DVD/image.jpg"
al_p4 = Image.open(filepath).resize((100, 150), Image.ANTIALIAS)
al_p4 = ImageTk.PhotoImage(al_p4)
print(filepath)

如果您需要将某些内容打印到窗口小部件,它将取决于您要使用的窗口小部件的类型。对于像文件路径这样小的东西,标签可能会很好。请查看effbot's documentation for the label widget了解更多详情。

如果要将所有打印语句重定向到窗口小部件,根据GUI的设计方式,这可能很有用,请创建一个类来重定向标准输出。这是一个带有文本小部件的示例:

import sys
import Tkinter

def nothing():
    print("Nothing")

class Application(Tkinter.Frame):
    def __init__(self, master = None):
        Tkinter.Frame.__init__(self, master)

        self.button = Tkinter.Button(text = "Button 1", command = nothing)
        self.button.pack()

        class StdoutRedirector(Tkinter.Text):
            def __init__(self):
                Tkinter.Text.__init__(self)
             def write(self, message):
                 printout.insert(Tkinter.END, message)
        printout = StdoutRedirector()
        printout.pack()
        sys.stdout = printout

root = Tkinter.Tk()
app = Application(root)
app.mainloop()

答案 1 :(得分:0)

我是编码新手,所以我会尽我所能=) 快速回答: 您需要在 PIL 对象中使用 .filename(不适用于 TK 对象)

#这是图片: al_p4 = Image.open("Media/DVD/image.jpg").resize((100, 150), Image.ANTIALIAS)

#This is to show in Tkinter, Notice I added ..._TK al_p4_TK = ImageTk.PhotoImage(al_p4)

#这是我认为你想要的文件路径: print(al_p4.filename)