2009-12-30 64 views
0

此代码未显示我的图片。图片真的存在:) 有谁知道为什么这不起作用? 在此先感谢!在Python中加载图像(错误)part_2

from PIL import Image 
im = Image.open("D:\\Python26\\PYTHON-PROGRAMME\\bild.jpg") 
im.show() 
+0

错误信息是什么?你有堆栈跟踪吗? – rui 2009-12-30 17:30:24

+0

IDLE中没有任何消息。图片浏览器显示消息:图片被删除或移动。但我认为这是错误的。什么是堆栈跟踪? – kame 2009-12-30 17:33:15

+0

这是堆栈跟踪? [('',1,'',None),('D:\\ Python26 \\ lib \\ idlelib \\ run.py',93,'main','ret = method(* args,* ('D:\\ Python26 \\ lib \\ idlelib \\ run.py',293,'runco​​de','exec code in self.locals'),('D:\\ Python26 \ \ PYTHON-PROGRAM \\ 00000000000000000',11,'','x()'),('D:\\ Python26 \\ PYTHON-PROGRAM \\ 00000000000000000',5,'x','print traceback.extract_stack ()')] – kame 2009-12-30 17:41:11

回答

1

您可能需要调用load()方法来强制open()方法执行其工作。开放是懒惰的。

尝试:

from PIL import Image 
im = Image.open("D:\\Python26\\PYTHON-PROGRAMME\\bild.jpg") 
im.load() 
im.show() 

理念#2: 补丁PIL的文件Image.py有可能更健壮的方法来使用Windows外壳程序来显示图像。在该方法中_showxv,替换以下行:

if os.name == "nt": 
    command = "start /wait %s && del /f %s" % (file, file) 

if os.name == "nt": 
    command = "%s" % file 

我怀疑是与现有的执行问题是del命令后& &的启动命令后,立即运行而不是在启动命令的结果完成之后。因此,在图像查看器准备加载并显示该文件时,该文件已被删除。

在修补它之前,请备份您的代码副本。

+0

图片浏览器显示消息:loading ... :(但没有任何图片 – kame 2009-12-30 17:37:20

+0

我不会过多地关心show()方法的工作原理,它仅用于调试目的,并且基于文档的工作原理(转换为位图,将位图保存为临时文件,使用默认系统查看器显示临时文件)有太多的地方可能无法修复此问题 请改为考虑在Image然后将它保存到一个新的位置手动打开这个新文件毕竟,你使用PIL以某种方式改变图像,对吗?你并不是简单地用它来显示ay图像 – 2009-12-30 17:42:09

+0

我不想现在改变os.name,因为实际上我没有改变它。现在我改变了图像,并以另一个名字保存。之后,我用一些图片浏览器观看它。谢谢! – kame 2009-12-30 18:12:54