Я не могу отобразить это изображение в графическом интерфейсе tkinter, потому что он не распознает файл изображения или каталог, вот мой код:

import tkinter as tk
from PIL import ImageTk, Image

root = tk.Tk()

path = "krebs.jpg"
img = ImageTk.PhotoImage(Image.open(path))
img.pack()

root.mainloop()

И вот изображение, о котором идет речь: безопасность Кребса

-3
Zach Goodman 23 Окт 2018 в 18:51

2 ответа

Лучший ответ

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

Во-вторых, я заметил, что вы пытаетесь pack() изображение в окне, но вы не можете сделать это. Вместо этого добавьте это к этикетке или холсту. Просто убедитесь, что ваш файл изображения находится в той же папке, что и ваш .py файл.

Попробуй это.

import tkinter as tk
from PIL import ImageTk, Image

root = tk.Tk()

path = "./krebs.jpg"
img = ImageTk.PhotoImage(Image.open(path))
lbl = tk.Label(root, image=img)
lbl.pack()

root.mainloop()

Я использовал простое маленькое изображение красного квадрата, которое я использую для тестирования, но вот результаты:

enter image description here

0
Mike - SMT 23 Окт 2018 в 19:22

Бьюсь об заклад, ваш текущий рабочий каталог не то, что вы думаете. Пытаться:

import os
os.getcwd()

Убедитесь, что в каталоге (напечатанном os.getcwd()) есть ваше изображение (то есть перейдите в эту папку и проверьте, есть ли там ваше изображение). Если нет, укажите абсолютный путь к вашему изображению:

path = C:/Users/<user_name>/... .../krebs.jpg

Или какой-либо полный путь к образу в вашей ОС.

Кроме того, вы можете переместить изображение в папку, обозначенную os.getcwd().

Вот трюк, который я использую все время, чтобы получить абсолютные пути, когда я пишу сценарии на Python:

import tkinter.filedialog as fd
path = fd.askopenfilename()

Откроется знакомый диалог открытия файла. Используйте диалоговое окно файла, чтобы найти файл, затем нажмите «Открыть», и вы получите полный путь, сохраненный в переменной «путь».

1
mRotten 23 Окт 2018 в 16:26
52953183