即时消息粘贴()不返回?

2024-10-01 15:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

def changeImage(event,label,images,image):
    w = event.widget
    index = int(w.curselection()[0])
    x,y = image.size
    thumbed = images[index].resize((x,y),PIL.Image.ANTIALIAS)
    print str(thumbed)
    tup = (0,0,x,y)
    paste = image.paste(thumbed,tup)
    final = ImageTk.PhotoImage(paste)
    label.config(image=final)
    label.image = final

我已经做了一些调试,但这里唯一的错误是,由于某种原因,粘贴变量变成了None,我不知道为什么。它抛出以下错误:

^{pr2}$

Tags: imageeventindexdef错误widgetlabelfinal
1条回答
网友
1楼 · 发布于 2024-10-01 15:33:52

paste方法确实没有返回任何内容,而是改变了图片的位置。参见herehere。您可以将代码更改为:

image.paste(thumbed,tup)           # nothing is returned, so no assignment
final = ImageTk.PhotoImage(image)  # using image instead of pasted

当然,这意味着您的image将被更改,因此您可能需要在粘贴之前创建一个副本。在

另外,正如@furas指出的,似乎根本不需要粘贴:将image[index]调整为与image相同的大小,然后将其粘贴到image中,跨越其整个大小。相反,您应该能够直接使用调整大小的图片。在

^{pr2}$

但是,这不会改变image,所以如果你想改变它,你必须粘贴。在

相关问题 更多 >

    热门问题