• PIL Image模块 show函数无法正常显示图片


    环境:Win7+python 2.7.6

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

    显示结果:

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

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

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

    X:Python26libsite-packagesPILImageShow.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行附近)

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

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

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

     

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

    PS:水平所限,文中难免有错误之处,欢迎指正,共同交流探讨。如转载请保留本段话,注明出处。
  • 相关阅读:
    linq 读取xml
    c# 定时器 自动执行
    如何在一个人输入框中只输入数字
    如何去掉滚动条,
    如何计算任意值之间的随机数呢
    【P2387】魔法森林(SPFA非正解)
    【Luogu】P3203弹飞绵羊(分块)
    【Luogu】P3396哈希冲突(根号算法)
    【Luogu】P2801教主的魔法(分块)
    【Luogu】P3155叶子的染色(树形DP)
  • 原文地址:https://www.cnblogs.com/Mr-Rice/p/3746064.html
Copyright © 2020-2023  润新知