Вставьте изображение JPG в Python с помощью Tkinter

я пытаюсь вставить изображение с помощью Tkinter, но это не работает, появляется сообщение об ошибке: (На самом деле это говорит о том, что python не может распознать данные в файле изображения)

Traceback (most recent call last):
  File "E:/Tle/ISN/Programs (Pyhton)/IMC (Widget) ULTIMATE.py", line 10, in <module>
    my_image = PhotoImage(file="C:/Users/mateo.PCMATEO/Pictures/MonCoachPersonnel.jpg")
  File "C:\Users\mateo.PCMATEO\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 3545, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "C:\Users\mateo.PCMATEO\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 3501, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "C:/Users/mateo.PCMATEO/Pictures/MonCoachPersonnel.jpg"

И вот код, который я ввел:

from tkinter import*
import tkinter as tk
window = tk.Tk()
window.title("My Personnal Fitness Coach")
window.geometry("400x500")
window.configure(background='grey')

canvas = Canvas(window, width = 100, height = 100)
canvas.pack
my_image = PhotoImage(file="C:/Users/mateo.PCMATEO/Pictures/MonCoachPersonnel.jpg")
canvas.create_image(0, 0, anchor = NW, image=my_image)

window.mainloop()

Проблема в том, что у меня нет никаких модулей, кроме тех, которые предварительно загружены с помощью python, и я пока не хочу их устанавливать. Так ты не мог бы мне помочь?


person Rezestick    schedule 24.09.2019    source источник
comment
Класс PhotoImage tk не поддерживает jpg.   -  person Bryan Oakley    schedule 24.09.2019


Ответы (1)


если вы используете jpg, вы должны сделать это

from PIL import ImageTk

потом

my_image = ImageTk.PhotoImage(file="MonCoachPersonnel.jpg")
canvas.create_image(50, 50, image=my_image, anchor=NW)

Я упростил каталог файлов, обратите внимание, что я увеличил размер изображения с 0,0 до 50,50.

person 1966bc    schedule 24.09.2019
comment
На самом деле я уже пробовал что-то подобное, но он говорит, что у меня нет модуля PIL ... поэтому я не понимаю - person Rezestick; 24.09.2019