首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageTk.PhotoImage崩溃

ImageTk.PhotoImage崩溃
EN

Stack Overflow用户
提问于 2011-05-27 10:15:56
回答 3查看 2.2K关注 0票数 9

我一直在尝试使用PIL调整图像大小,然后使用Tkinter显示它们,但程序已经崩溃,我已经将问题隔离到下面的第二行:

代码语言:javascript
复制
image = Image.open("0.gif")
photo = ImageTk.PhotoImage(image)

这是我的导入:

代码语言:javascript
复制
from Tkinter import * 
from PIL import Image, ImageTk 

我读到Tk必须被初始化,在它到达程序中的那些行之前,我在程序中这样做了。所以我不知道这是什么。

我在eclipse上运行OSX和python2.7解释器(使用PyDev)。

更新:

eclipse上的错误消息说:

代码语言:javascript
复制
STACK: Stack after current is in use
EN

回答 3

Stack Overflow用户

发布于 2012-09-28 21:00:01

在使用tkinter之前,我已经看到了这个错误。我想这和旧版本的tkinter有关。我更新了我的python版本和tkinter版本,它消失了。当您在不同的操作系统/计算机/平台/版本的Python上运行代码时,是否会发生此错误?您使用的是什么版本的tkinter?一些谷歌搜索显示,在使用tkinter时,这两个页面描述了同一个bug……

http://osdir.com/ml/python.leo.general/2008-03/msg00060.html

http://fornax.phys.unm.edu/lwa/trac/ticket/3

我看不到你所有的代码,但我敢打赌,你的代码不一定有任何问题。下面的代码对我有效...

代码语言:javascript
复制
from Tkinter import * 
from PIL import Image, ImageTk 

# resize image with PIL
im = Image.open('path to gif')
resized_im = im.resize((400,400,),Image.ANTIALIAS)

# display image in tkinter window
window = Tk()
tk_im = ImageTk.PhotoImage(resized_im)
window.geometry('%dx%d' % (resized_im.size[0],resized_im.size[1]))
label_image = Label(window, image=tk_im)
label_image.place(x=0,y=0,width=resized_im.size[0],height=resized_im.size[1])
window.mainloop()

使用..。

ubuntu 10.04 64位

python 2.6.5

python-imaging tk 1.1.7

python-tk 2.6.5 (使用版本8.5.0的tkinter)

python映像库(PIL) 1.1.7

eclipse 3.7.1

pydev 2.5.0.2012050419

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2014-09-06 22:51:08

我在一个当前项目中使用了Tk、PIL和调整图像大小,下面的代码对我来说工作得很好。

代码语言:javascript
复制
#Imports
from Tkinter import * 
from PIL import Image, ImageTk 

#Create Tk instance
root = Tk()

#Open image and resize
image = Image.open("path/to/image/file").resize((400,400), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)

在此之后,我发现在tkinter中将图像显示为标签是最容易的,如下所示。

代码语言:javascript
复制
image_label = Label(root, width = 400, height = 400, image = photo bd = 0)

(我喜欢bd = 0,否则我会在图像周围看到一个细小的白色边框。)希望这对你有所帮助。祝好运!边缘

票数 1
EN

Stack Overflow用户

发布于 2013-07-24 07:19:53

所以这是一个古老的问题,但如果有人偶然发现了这一点(就像我刚才做的那样),错误消息来自Tcl (tclExecute.c)。

代码语言:javascript
复制
root = Tk()
image = Image.open("0.gif")
photo = ImageTk.PhotoImage(image)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6147159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档