我想在我的根窗口中显示图像,但它说
IndexError:元组索引超出范围
你知道什么是错的吗? 这是我的代码:
import numpy
import cv2
from Tkinter import *
from PIL import Image, ImageTk
root = Tk()#
lena = "C:\lena.jpg"
#convert jpg
image = Image.open(lena)
photo = ImageTk.PhotoImage(image)
w = Canvas(root)
w.create_image( image = photo)
w.pack()
root.mainloop()
错误讯息:
追踪(最近的呼叫最后):
文件" C:\ Users \ Marrin \ Desktop \ Uni \ EPR \ ImagineEditor_EPR9 \ openImageInTkinter.py",第16行,中
w.create_image(image = photo)
文件" C:\ Users \ Marrin \ Anaconda2 \ lib \ lib-tk \ Tkinter.py",第2314行,在create_image中 return self._create(' image',args,kw)
文件" C:\ Users \ Marrin \ Anaconda2 \ lib \ lib-tk \ Tkinter.py",第2298行,在_create中 cnf = args [-1]
IndexError:元组索引超出范围
答案 0 :(得分:2)
如果不指定坐标,则无法使用Tkinter.Canvas.create_image。为了使您的示例按预期工作,您必须指定放置图像的坐标;请记住,此类坐标指的是图像的中心。
关于你的例子,你可以这样做:
w = Canvas(root)
w.pack()
w.create_image(0, 0, image=photo, anchor="nw")
请注意,我还指定了"西北"锚定,以便(0,0)坐标指向图像的顶部/最左侧点(默认锚点指的是图像的中心点)。
答案 1 :(得分:0)
create_image
需要作为第一个参数的位置
http://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_image-method