파이썬(Python)/tkinter

(Python, tkinter) jpg, png, jpeg 이미지 파일 업로드 하기

끄적끄적아무거나 2021. 9. 9. 09:03
반응형

(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파일 모두 업로드가 가능했다.

 

 

반응형