반응형
(Python, tkinter) jpg, png, jpeg 이미지 파일 업로드 하기
예전에 gif를 tkinter를 사용해서 canvas에 업로드 하였고 문제 없이 사용할 수 있었다. 이번에 png 파일을 아래와 같이 동일 코드를 사용해서 업로드 하려고 하였으나 아래처럼 에러 코드가 발생하였다.
문제 코드>>
from tkinter import *
app = Tk()
width = 600
height = 400
pos_x = width/2
pos_y = height/2
canvas = Canvas(app, width=width, height=height)
canvas.pack(padx=10, pady=10)
img_path = PhotoImage(file=r"C:\Users\forgo\Desktop\foot_logo.png")
shapes = canvas.create_image(width/2, height/2, image = img_path)
app.title('scribblinganything.tistory.com')
app.geometry("700x450")
app.mainloop()
에러코드>>
Traceback (most recent call last):
File "c:\Users\forgo\Documents\python_ex\web_test\test07.py", line 12, in <module>
img_path = PhotoImage(file=r"C:\Users\forgo\Desktop\foot_logo.png")
File "C:\Users\forgo\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 4064, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Users\forgo\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 4009, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "C:\Users\forgo\Desktop\foot_logo.png"
jpg, png 이미지 파일 업로드 가능한 코드 수정하기
수정 코드>>
from tkinter import *
from PIL import ImageTk
app = Tk()
width = 600
height = 400
pos_x = width/2
pos_y = height/2
canvas = Canvas(app, width=width, height=height)
canvas.pack(padx=10, pady=10)
img_path = ImageTk.PhotoImage(file=r"C:\Users\forgo\Desktop\foot_logo.png")
shapes = canvas.create_image(width/2, height/2, image = img_path)
app.title('scribblinganything.tistory.com')
app.geometry("700x450")
app.mainloop()
결과 화면>>
주석>>
PIL 라이브러리에서 ImageTK를 가져와서 거기에 있는 PhtoImage 함수를 사용해서 경로를 지정하니 png파일, jpg파일 모두 업로드가 가능했다.
반응형
'파이썬(Python) > tkinter' 카테고리의 다른 글
파이썬 tkinter - grid란? (간격, 배치, 정렬 방법) 예제로 쉽게 이해하기 (0) | 2021.09.17 |
---|---|
파이썬 tkinter 변수값 가져오기(StringVar, IntVar, DoubleVar, BooleanVar) - 예제로 이해하기 (0) | 2021.09.12 |
Python tkinter Canvas 함수 및 옵션 예제로 이해하기 (0) | 2021.09.08 |
(파이썬) 키보드 입력으로 도형 생성, 움직이는 그림 예제 (canvas, tkinter) (5) | 2021.09.05 |
(파이썬) 새 윈도우창 만들기, 클릭 시 특정 함수 실행하기 예제 (tkinter) (0) | 2021.09.03 |