![](/img/trans.png)
[英]Python 3- How to retrieve an image from the web and display in a GUI using TKINTER?
[英]How to display an image using tkinter in gui
给定的代码不起作用,因为它给出了找不到“ haridwar.jpg”文件的错误,尽管我尝试将其放在Python35和台式机中。 请帮忙
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()
根据您的问题判断,您可能没有将该文件放在合适的位置; 您也没有提供通往这些位置的路径。 因此,让我们分解一下。
您说过将图像放置在Python35
文件夹中。 不知道更多信息,我想您正在谈论的是python默认目录,位于C:\\program files\\Python35
。
如果是这种情况,请更改该行:
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,它可以在文件夹的当前工作目录中查找。
我使用我知道正确的目录/文件名尝试了您的代码,并且可以正常工作。 您的目录/文件名的拼写错误或目录错误。
确保目录和文件名正确。
例如,我的桌面上有“ 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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.