Невозможно отобразить изображение в Canvas (Tkinter) - PullRequest
0 голосов
/ 07 ноября 2018

Я делал программу Paint и теперь добавляю функцию «Открыть». Вот результат пять минут назад: Don't pay attention to the actual drawing

Не обращайте внимания на сам рисунок ... Так что я перезапустил вещь, и на этот раз она просто оставила пустой экран, не показывая изображение вот так ... The result

Вот код:

def Open():
global Directory
Directory = filedialog.askopenfilename(initialdir="/Desktop", title="Open Image", filetypes=(("Portable Network Graphics","*.png"),("Joint Photographic Experts Group","*.jpg"),("all files","*.*")))

ImageOpened = Image.open(Directory)
Largeur, Hauteur = ImageOpened.size

if Largeur >= 1000 or Hauteur >= 1000:
    messagebox.showwarning("Can't open image", "The image is too big!")
elif not Largeur >= 1000 or not Hauteur >= 1000:
    Can.delete(ALL)
    FinalImage = ImageTk.PhotoImage(ImageOpened)
    Can.configure(width=Largeur, height=Hauteur)

    WidthPosition = Largeur/2
    WidthPosition = WidthPosition+2

    HeightPosition = Hauteur/2
    HeightPosition = HeightPosition+2

    print (Largeur, Hauteur, WidthPosition, HeightPosition)
    Can.create_image(WidthPosition,HeightPosition, image=FinalImage)

Может ли кто-нибудь помочь мне, пожалуйста? ; -;

1 Ответ

0 голосов
/ 07 ноября 2018

Только что решил, я забыл global в начале ... ^^ ' Теперь код выглядит так:

def Open():
global Directory, FinalImage
Directory = filedialog.askopenfilename(initialdir="/Desktop", title="Open Image", filetypes=(("Portable Network Graphics","*.png"),("Joint Photographic Experts Group","*.jpg"),("all files","*.*")))

ImageOpened = Image.open(Directory)
Largeur, Hauteur = ImageOpened.size

if Largeur >= 1000 or Hauteur >= 1000:
    messagebox.showwarning("Can't open image", "The image is too big!")
elif not Largeur >= 1000 or not Hauteur >= 1000:
    Can.delete(ALL)
    FinalImage = ImageTk.PhotoImage(ImageOpened)
    Can.configure(width=Largeur, height=Hauteur)

    WidthPosition = Largeur/2
    WidthPosition = WidthPosition+2

    HeightPosition = Hauteur/2
    HeightPosition = HeightPosition+2

    print (Largeur, Hauteur, WidthPosition, HeightPosition)
    Can.create_image(WidthPosition,HeightPosition, image=FinalImage)
...