PILImage模块show函数无法正常显示图片

王朝学院·作者佚名  2016-08-27  
宽屏版  字体: 小 | 中 | 大 | 超大  

环境:Win7+python 2.7.6

importImage

im=Image.open('3.png')

im.show()

显示结果:

一直显示正在加载,无法打开,或者显示内容不存在等。

直接双击图片则可正常显示

解决办法:(X: 为python安装路径,默认C盘)

X:\Python26\lib\site-packages\PIL\ImageShow.py, 第99行(附近)替换为:

return"start /wait %s && PING 127.0.0.1 -n 5 > NUL && del /f %s"% (file, file)

具体原因:(个人对参考资料翻译结果,仅供参考,英语水平较差,可能错误较多,英文原版见下文参考链接)

在Windows xp上默认的图像查看器能够在阻塞工作模式-这意味着命令将一直等到图像窗口将被关闭才执行。

因为这种行为,他们(python)创建一个命令行用来在图像被显示后删除临时文件。(见ImageShow.py 99行附近)

而WindowsVista则不一样,一旦命令被执行它就立即返回。

因此,临时文件会被立即删除,图片查看器无法拥有足够的时间来加载这个已经被删除的图片。

于是,在原命令中添加一条没用的命令(PING 127.0.0.1 -n 5 > NUL)为图像加载争取时间,问题解决。

参考:http://www.velocityreviews.com/forums/t707158-python-pil-and-vista-windows-7-show-not-working.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有