Python关于PIL的Image.show()无法正常显示图片问题

from PIL import Image

img = Image.open("../demo.jpg")
img.show()

这种图片显示方式是调用操作系统自带的默认图片浏览器来打开图片,然而有时却会遇见这样的错误:Python关于PIL的Image.show()无法正常显示图片问题_第1张图片
然而用plt却能正常打开:

from PIL import Image
import matplotlib.pyplot as plt

img = Image.open("../demo.jpg")
plt.imshow(img)
plt.show()

Python关于PIL的Image.show()无法正常显示图片问题_第2张图片
这就让我百思不得其解,也查阅了很多博客都非常复杂,并且大都是基于win7环境下python2.7的解决方案,在win10环境下,PIL的ImageShow.py文件早已得到修复,但是依旧打不开图片。
再研究发现,Image.show()函数会生成一个临时的.BMP文件用来显示,然而平时一般很少用.bmp属性的照片,windows就没有关联到这个属性图片的默认打开程序,所以我们只需要设置.BMP文件默认打开软件,就可以完美解决这个问题。

首先打开系统设置,找到应用

Python关于PIL的Image.show()无法正常显示图片问题_第3张图片
然后选择默认应用
Python关于PIL的Image.show()无法正常显示图片问题_第4张图片
翻到下面会有一个 按文件类型指定默认应用

Python关于PIL的Image.show()无法正常显示图片问题_第5张图片

找到对应的.BMP文件格式(因为要遍历所有文件格式,可能要等待一分钟),选择默认打开程序

Python关于PIL的Image.show()无法正常显示图片问题_第6张图片
这样,问题就得到了解决

我们再来试验用Image.show()打开图片
Python关于PIL的Image.show()无法正常显示图片问题_第7张图片
问题完美解决。

你可能感兴趣的:(Python,windows,python,plt)