Python,元组索引超出范围

Python, tuple index out of range

我想在我的根 window 中显示一个图像,但它说

IndexError: tuple index out of range

你知道这是怎么回事吗?
这是我的代码:

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()

错误信息:

Traceback (most recent call last):
File "C:\Users\Marrin\Desktop\Uni\EPR\ImagineEditor_EPR9\openImageInTkinter.py", line 16, in
w.create_image( image = photo)
File "C:\Users\Marrin\Anaconda2\lib\lib-tk\Tkinter.py", line 2314, in create_image
return self._create('image', args, kw)
File "C:\Users\Marrin\Anaconda2\lib\lib-tk\Tkinter.py", line 2298, in _create
cnf = args[-1]
IndexError: tuple index out of range

您不能在不指定坐标的情况下使用 Tkinter.Canvas.create_image。为了使您的示例按预期工作,您必须指定放置图像的坐标;请记住,此类坐标指的是图像的中心。

关于你的例子,你可以这样做:

w = Canvas(root)
w.pack()
w.create_image(0, 0, image=photo, anchor="nw")

请注意,我还指定了一个 "North-West" 锚点,因此 (0, 0) 坐标是指图像的 top/leftmost 点(默认锚点是指中央图片的点)。

create_image 要求位置作为第一个参数

http://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_image-method