본문 바로가기
Python/tkinter

[Python tkinter] tkinter 모듈을 이용한 GUI - 사진 삽입 PhotoImage

by dev수니 2021. 4. 8.
반응형

 

 

 1  절대경로와 상대경로 

 

 

이미지를 불러와서 버튼과 라벨에 이미지를 올릴 수 있다.

이미지를 불러올 때는 경로가 중요한데 같은 디렉터리 내에 위치할 경우 경로를 따로 지정해줄 필요 없이 "파일명.확장자" 로 사용하면되고 다른 경로에 있을 경우 절대경로와 상대경로로 경로를 지정해줄 수 있다.

 

절대경로
"C:\\pjs\\python\\파일명.확장자" 파일이 위치한 주소를 말한다.

 

 

 

상대경로
"..\\파일명.확장자" - 현재파일이 위치한 폴더 이전으로 돌아간다.
"폴더\\파일명.확장자" - 현재 위치한 폴더의 폴더로 들어간다.

 

ex) 현재 BBB폴더에 위치한 경우

 

"..\\soonipy.py" : ..\\하게 되면 이전으로 돌아간다.

 

"CCC\\test1.py" : 폴더명\\하게되면 현재위치 내의 폴더로 들어간다.

 

 

 

 


 

 

 

 2  PhotoImage 

 

PhotoImage 클래스를 이용해 라벨이나 버튼등의 위젯에 이미지를 추가할 수 있다.

PhotoImage(file="파일경로") 를 이용해 이미지파일을 불러Label에 넣어주면 이미지가 윈도우창에 추가된다.

 

 

 

# 다음 예제는 이미지를  윈도우 창에 라벨형태로 삽입시켜준 예제이다.

1
2
3
4
5
6
7
8
9
10
11
from tkinter import*
 
win = Tk()    # 윈도우창 객체 생성
win.title("image")    #  타이틀 설정
 
photo = PhotoImage(file='파일의 필요성.PNG'# 사진파일을 불러온다.
= Label(win,image=photo)    # Label 객체에 image로 표시할 것이라고 알려준다.
w.photo = photo    # Label의 포토안에 불러온 파일을 넣어준다. 생략가능.
w.pack()       # Label을 화면 배치
 
win.mainloop()
cs

 

먼저 윈도우 창을 생성하고 타이틀을 설정해주었다.

그리고 PhotoImage 클래스를 이용하여 이미지파일을 불러왔고 해당 객체를 photo 에 담아주었다. 그리고 Label 위젯 생성시 라벨에 image 속성값을 주어 photo 객체를 라벨에 넣어주었고 라벨은 윈도우창 객체에 넣어 주었다.

 

3.몇 버전 이후로는 줄8의 부분을 생략해줘도 된다고 하지만 여기선 짚고 넘어가자.

라벨 객체 안에 image속성으로 파일을 넣어줬지만 라벨객체의 photo 안에 PhotoImage 객체를 한번 더 넣어주고 줄9에서 라벨객체를 화면에 배치시켜주었다.

 

따라서 실행시키면 다음과 같이 이미지가 잘 배치된 것을 볼 수 있다.

 

반응형

댓글