pil 不显示图像

Posted

技术标签:

【中文标题】pil 不显示图像【英文标题】:Image not being displayed with pil 【发布时间】:2022-01-23 22:30:54 【问题描述】:

我正在尝试从此目录打开图像,但无法打开。它给了我以下错误:

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-27-1840203b5591> in <module>
      4 
      5 file = path+'\\'+a
----> 6 Image.open(file).show()
      7 #files=os.listdir(path)
      8 #emoji=random.choice(files)

/usr/lib/python3/dist-packages/PIL/Image.py in open(fp, mode)
   2807 
   2808     if filename:
-> 2809         fp = builtins.open(filename, "rb")
   2810         exclusive_fp = True
   2811 

FileNotFoundError: [Errno 2] No such file or directory: '/home/laura/Desktop/TheLab/nft/Emojis\\031-happy-2.png'

这是我的代码:

import os
from PIL import Image
import random
import numpy as np

path = r"/home/laa/Desktop/TheLab/nft/Emojis"
a=random.choice(os.listdir(path))
print(a)

file = path+'\\'+a
Image.open(file).show()

我不知道每次打印 a 时会发生什么,它会显示带有 .png 扩展名的图像名称,但稍后不会显示。

【问题讨论】:

它告诉你提供的路径不正确,尝试提供完整路径 【参考方案1】:

目录分隔符错误。 而不是 '\\' 使用 '/' 这应该有效:

import os
from PIL import Image
import random
import numpy as np

path = r"/home/laa/Desktop/TheLab/nft/Emojis"
a=random.choice(os.listdir(path))
print(a)

file = path+'/'+a
Image.open(file).show()

如果这仍然不起作用,请尝试在 \home 之前添加以前的目录或驱动器。例如。 C:/Users/dr_de/Documents(全路径)

【讨论】:

【参考方案2】:

您正在混合使用 Linux 风格的 / 和 Windows 风格的 \\ 路径分隔符。最简单的方法是使用

import os
...
file = os.path.join(path,a)

应该为你插入正确的字符,我认为它需要是一个 '/' 。

【讨论】:

天啊!!我太笨了,我都没注意到。非常感谢!!

以上是关于pil 不显示图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在屏幕上显示 PIL 图像?

如何使用 PIL 放大图像的某个部分?

如何在 ipython 笔记本中显示 PIL 图像

如何在 Django 视图中显示 PIL 图像对象?

RLE8 图像支持/使用 Pillow 解压(PIL fork)

Tkinter PIL 图像未显示在函数内部