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
我想在我的根 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