Python无法识别jpg图片文件/目录

时间:2018-10-23 15:51:32

标签: python tkinter python-imaging-library

我无法将此图像显示在tkinter gui中,因为它无法识别图像文件或目录,这是我的代码:

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()

这是有问题的图片:Krebs security pic

2 个答案:

答案 0 :(得分:1)

我敢打赌,您当前的工作目录不是您认为的那样。试试:

import os
os.getcwd()

确保目录(由os.getcwd()打印)中包含您的图像(即,转到该文件夹​​并检查是否存在您的图像)。如果没有,请指定图像的绝对路径:

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

或操作系统上映像的完整路径。

或者,您可以将图像移动到os.getcwd()指示的文件夹中。

在我使用Python编写脚本时,这是我一直使用的技巧,以获取绝对路径:

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

它将打开一个熟悉的文件打开对话框。使用文件对话框窗口查找文件,然后单击“打开”,然后将完整路径保存到变量“ path”。

答案 1 :(得分:0)

好吧,我相信有一个更简单的解决方案,并且总体上更好。 Python可以使用.来告诉代码,您要查找的文件与python代码位于同一目录中。这样,您无需手动选择文件或使用完整的文件路径名。

2nd我注意到您正在尝试将图像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