2014-09-01 2 views
0

나는 al_p4이라는 tkinter에 PhotoImage를 가지고 있지만 이미지의 파일 경로를 인쇄 할 수 있기를 원합니다. 누구든지 도와 줄 수 있어요. 여기 내 코드입니다 : 사전들에서Python Tkinter - PhotoImage에서 이미지 파일 경로 찾기

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

감사)

+0

"이미지의 파일 경로 반환"이 무엇인지에 대해 좀 더 명확하게 알고 싶을 수 있습니다. 그것을 다른 기능으로 되 돌리는 것을 의미합니까? 또는 파일 경로를 위젯에 인쇄하여 사용자가 볼 수있게 만드시겠습니까? 아니면 완전히 다른 것? 기본적으로 더 많은 정보가 도움이 될 것입니다. – Gustav

+0

Thanks @ Gustav 나는 내 질문을 편집했다. –

+1

'filename'은'Image.open'의 결과에서 검색 할 수 있지만 이미지를'크기를 조정할 때 또는'PhotoImage'로 만들 때 잃어 버릴 수 있습니다. –

답변

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