2017-03-04 1 views
0

파이썬에서 Tkinter를 사용하여 GUI 프로그래밍을하고 있습니다. 위젯을 만들기 위해 그리드 관리자를 사용하고 있습니다. 몇 개의 버튼을 만들었고 그 위에 이미지를 업로드하고 싶습니다. 이 코드를 입력하면 escape sequence error이 표시됩니다.Tkinter를 사용하여 파이썬에서 이미지를 업로드하려면 어떻게해야합니까?

필자는 PIL을 사용하는 것이 좋지 않다고 생각하니? 그게 사실이야?

cookImage = PhotoImage(file = "image/C:\Users\terimaa\AppData\Local\Programs\Python\Python36-32\cook.gif") 
+0

정확한 오류를 표시하십시오. –

답변

0

윈도우 파일 이름은 원시 문자열로 입력해야합니다

cookImage = PhotoImage(file=r"C:\Users\terimaa\AppData\Local\Programs\Python\Python36-32\cook.gif") 

이, 파이썬의 모든뿐만 아니라 PIL을 적용합니다.

+0

_must_는 다소 강력한 용어입니다. 슬래시 또는 백 슬래시로 이스케이프 처리 된 뒤로 슬래시를 사용할 수도 있습니다. –

+0

@ BryanOakley 충분히 공정하지만 원시 문자열이 가장 깨끗한 방법입니다. 슬래시는 주로 작동하기 때문에 절대 추천하지 않습니다. – Novel

0

사용 :

path = r"a string with the path of the photo" 

참고 r 접두사, 그것은 원시 문자열을 의미한다.

... 
img = ImageTk.PhotoImage(Image.open(file=path)) 
label = tk.Label(root, image = img) 
label.something() #pack/grid/place 
... 

경로가 될 수 있습니다

  • 절대 상대 ("C:\Users\terimaa\AppData\Local\Programs\Python\Python36-32\cook.gif")

  • 이있는 경우

0

("\cook.gif"는 파이썬 코드가 위치에 따라 달라집니다) image file 정확히 원하는 것입니다. 그냥 열어주세요. 또는 PhotoImage. Windows에서 3.6을 사용해야하는 Tcl/Tk 8.6도 .png 파일을 읽습니다. Windows에서 파일 이름 앞에 'r'을 사용하거나 슬래시 ('C :/User/...')를 사용하십시오.

실제 PIL 패키지는 더 이상 유지 관리되지 않으며 2.x에서만 작동합니다. 그것이 새로운 사용자가 사용해서는 안되는 것입니다. 호환 가능한 후속 장치 인 pillow (예 : python -m pip install pillow으로 설치됨)은 적극적으로 유지 관리되며 3.x에서 작동합니다. 호환성은 import 문까지 확장됩니다. import PIL 수입 베개. 베개를 사용하면 이미지를 조작하고 다양한 형식을 tk 형식 (ImageTk 클래스)으로 변환 할 수 있습니다.

관련 문제