如何在 gui 中使用 tkinter 显示图像

How to display an image using tkinter in gui

The given code is not working, as it gives the error of file not found for 'haridwar.jpg' though I tried putting it in in Python35 and also on desktop. Please help

import tkinter as tk  
from PIL import Image,ImageTk  
root = tk.Tk()  
root.title("display image")  
im=Image.open("haridwar.jpg")  
photo=ImageTk.PhotoImage(im)  
cv = tk.Canvas()  
cv.pack(side='top', fill='both', expand='yes')  
cv.create_image(10, 10, image=photo, anchor='nw')  
root.mainloop()

我使用 directory/filename 尝试了您的代码,我知道它是正确的,并且有效。您的 directory/filename 拼写有误,或者目录有误。

确保目录和文件名正确。

例如,我的桌面上有 "Image.jpg"

import tkinter as tk  
from PIL import Image,ImageTk  
root = tk.Tk()  
root.title("display image")  
im=Image.open("C:/Users/<myname>/Desktop/Image.jpg")  #This is the correct location and spelling for my image location
photo=ImageTk.PhotoImage(im)  
cv = tk.Canvas()  
cv.pack(side='top', fill='both', expand='yes')  
cv.create_image(10, 10, image=photo, anchor='nw')  
root.mainloop()

根据您的问题判断,您可能没有将文件放在合适的位置;您也没有提供通往这些位置的路径。所以让我们分解一下。

你说你把图像放在 Python35 文件夹中。在不了解更多的情况下,我会想象你在谈论位于 C:\program files\Python35.

之类的地方的 python 默认目录

如果是这种情况,则更改行:

im=Image.open("haridwar.jpg") 

为此:

im=Image.open("C:\program files\Python35\haridwar.jpg")

尽管这不是展示您形象的好地方。我们将在几秒钟内完成。

正如您所说,您也尝试过桌面。所以你会想要提供一个路径到你的桌面。

像这样:

im=Image.open("C:/Users/your_user_folder/Desktop/haridwar.jpg")

这也不适合存放您的文件。

让我们试试别的。让我们将文件放入您的工作 python 目录。

例如,如果您的 main.py 文件位于

"C:/myworkspace/my_program/main.py"

然后您可以将该图像放在同一个 my_program 文件夹中,您的代码应该可以正常工作。

如果您想要一个仅用于存放图像的文件夹,您可以在如下所示的目录中创建一个:

"C:/myworkspace/my_program/my_images/haridwar.jpg"

在这种情况下,您可以提供这样的短路径:

im=Image.open("./my_images/haridwar.jpg") 

注意 /my_image 文件夹之前的 .。这用于告诉 Python 它可以在文件夹的当前工作目录中查找。