使用tkinter和枕头显示图像

使用tkinter和枕头显示图像,tkinter,pycharm,python-imaging-library,ubuntu-18.04,cv2,Tkinter,Pycharm,Python Imaging Library,Ubuntu 18.04,Cv2,这是我的密码 import tkinter as tk import cv2 import PIL.Image, PIL.ImageTk window = tk .Tk() img = cv2.imread('bee1.jpg') height, width, no_channels = img.shape canvas = tk.Canvas(window, width = width, height = height) canvas.pack() photo = PIL.Image

这是我的密码

import tkinter as tk
import cv2
import PIL.Image, PIL.ImageTk

window = tk .Tk()

img = cv2.imread('bee1.jpg')

height, width, no_channels = img.shape

canvas = tk.Canvas(window, width = width, height = height)
canvas.pack()

photo = PIL.ImageTk(0,0,image=photo,anchor=tk.NW)


window.mainloop()
我正在运行Pycharm 2019.3,Ubuntu(最新版本)

我得到这个错误:

ImportError: cannot import name '_imaging' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)
我尝试加载的图像是:


您的代码中有几处出错:

  • 您需要从PIL import Image导入带有
    的PIL,否则您将看到错误

  • 您不应该真正使用OpenCV来阅读这里的图像,原因有二。。。首先,它在下面都使用了PIL,所以您添加了一个不必要的依赖项;其次,因为OpenCV使用的是BGR顺序,而不是RGB,所以除非您更改它,否则一切都是从前到后的,这意味着您可以首先使用PIL来读取图像


不管怎样,我的自鸣得意已经够多了,这里有一些工作代码:

#!/usr/bin/env python3

import tkinter as tk
from PIL import Image, ImageTk

window = tk.Tk()

img = Image.open('bee.jpg')
width, height = img.size

canvas = tk.Canvas(window, width = width, height = height)
canvas.pack()

photo = ImageTk.PhotoImage(img)
canvas.create_image(width//2, height//2, image=photo)

window.mainloop()

您的代码中有几处出错:

  • 您需要从PIL import Image导入带有
    的PIL,否则您将看到错误

  • 您不应该真正使用OpenCV来阅读这里的图像,原因有二。。。首先,它在下面都使用了PIL,所以您添加了一个不必要的依赖项;其次,因为OpenCV使用的是BGR顺序,而不是RGB,所以除非您更改它,否则一切都是从前到后的,这意味着您可以首先使用PIL来读取图像


不管怎样,我的自鸣得意已经够多了,这里有一些工作代码:

#!/usr/bin/env python3

import tkinter as tk
from PIL import Image, ImageTk

window = tk.Tk()

img = Image.open('bee.jpg')
width, height = img.size

canvas = tk.Canvas(window, width = width, height = height)
canvas.pack()

photo = ImageTk.PhotoImage(img)
canvas.create_image(width//2, height//2, image=photo)

window.mainloop()

您对此做过任何研究吗?当我在谷歌上搜索错误信息时,我得到了很多结果。我已经尝试了所有可能的方法来解决这个问题,但没有成功,顺便说一句,我尝试了tkinter、cv2、PIL、Pillow、Imageio模块,所有这些都出现了同样的错误。我觉得这和我的环境有关。我还尝试了所有模块的PIP安装,甚至将它们加载到Pycharm解释器中。如果您已经尝试了所有可能的方法,那么最好在您的问题中添加这一点,这样人们就不会尝试推荐您已经尝试过的东西。此外,如果您认为这可能是由于您的环境造成的,请提供有关您的环境的详细信息。您对此做过任何研究吗?当我在谷歌上搜索错误信息时,我得到了很多结果。我已经尝试了所有可能的方法来解决这个问题,但没有成功,顺便说一句,我尝试了tkinter、cv2、PIL、Pillow、Imageio模块,所有这些都出现了同样的错误。我觉得这和我的环境有关。我还尝试了所有模块的PIP安装,甚至将它们加载到Pycharm解释器中。如果您已经尝试了所有可能的方法,那么最好在您的问题中添加这一点,这样人们就不会尝试推荐您已经尝试过的东西。此外,如果你认为这可能是由于你的环境,请包括你的环境的细节。哇!这确实奏效了!我有史以来第一次能够用PyCharm显示图像!非常感谢!这确实奏效了!我有史以来第一次能够用PyCharm显示图像!非常感谢你