给定的代码不起作用,因为它给出了找不到文件的错误 为' 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()
答案 0 :(得分:6)
根据您的问题判断,您可能没有将文件放在合适的位置;你也没有提供这些地点的路径。所以让我们分解一下。
您说您将图片放在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它可以查看文件夹的当前工作目录。
答案 1 :(得分:3)
我使用目录/文件名尝试了你的代码,我知道这是正确的,并且它有效。您的目录/文件名拼写错误,或者您的目录错误。
确保目录和文件名正确无误。
例如,我的桌面上有“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()