图像未在python上显示

图像未在python上显示,python,tkinter,Python,Tkinter,我是python编程的初学者。我将把图像放在框架上。但图像未显示错误如下所示。 回溯(最近一次呼叫最后一次): 实际上,我认为不可能直接将jpg与PhotoImage一起使用,相反,您可能希望使用PIL,以下是方法 pip install PIL 在这之后,就说 from tkinter import * from PIL import Image,ImageTk root = Tk() canvas = Canvas(root, width = 600, heigh

我是python编程的初学者。我将把图像放在框架上。但图像未显示错误如下所示。 回溯(最近一次呼叫最后一次):


实际上,我认为不可能直接将
jpg
PhotoImage
一起使用,相反,您可能希望使用
PIL
,以下是方法

pip install PIL
在这之后,就说

from tkinter import *  
from PIL import Image,ImageTk
    
root = Tk()      
canvas = Canvas(root, width = 600, height = 600)
canvas.pack()   
   
img_file = Image.open("sad songs.jpg")
img_file = img_file.resize((150,150)) #(width,height)
img = ImageTk.PhotoImage(img_file)
canvas.create_image(20,20, anchor=NW, image=img)
      
root.mainloop()

如果有任何错误或疑问,请务必让我知道


干杯

这可能是由于tkinter图像中出现了一个新的错误,我们必须保留图像的引用以确保其正常工作,我希望这会解决它

canvas.img = img
另外,正如@Cool Cloud也指出的,它有时不能处理jpg文件,但对我来说有时也会,所以如果它不能处理你,你可以将它转换成png或gif(根据我遇到这些问题时的处理方式,我更喜欢png)。 此外,您还可以尝试使用PIL库来代替转换,PIL库可以使用

pip install PIL
然后您可以使用一个名为PhotoImage的类(是的,它与tkinter类同名)来进行图像加载和填充,它位于ImageTk模块下,可用于处理tkinter图像

您还可以将图像对象作为参数传递到此类中,您可以创建图像对象,如所示:

img_obj = Image.open('annoying_image.jpg') # uses the Image module from PIL use import PIL.Image
像这样

img = PIL.ImageTk.PhotoImage(img_obj) # uses the Image module from PIL use import PIL.ImageTk
另外,如果您想了解更多关于PIL的信息,它基本上只是一个python图像处理库,通常也称为pillow

导入语句(以防不清楚)


图像的格式是否正确?你把它正确地转换成jpg了吗?是的,先生。。。。。。。。。。。。。。。。。。。。。。。我想问题可能是,
PhotoImage
只支持
gif
文件(我想我在什么地方读过),所以要么尝试将其转换为gif,要么使用
PIL
模块。你能为我写代码吗?如何在框架上添加图像请搜索此网站。在tkinter中显示jpg图像有很多问题。这不是一个新的bug。这是tkinter多年来的工作方式。问题很简单,tkinter不直接支持jpg。@CoolCloud:在tkinter的最新版本中,是的。先生,如何制作可点击的图像请询问一个新的Q并链接到这里,我将提供帮助:D
img_obj = Image.open('annoying_image.jpg') # uses the Image module from PIL use import PIL.Image
img = PIL.ImageTk.PhotoImage(img_obj) # uses the Image module from PIL use import PIL.ImageTk
from PIL import Image, ImageTk