matplotlib:ValueError:无效的PNG标头

Mic*_*chM 6 matplotlib

import matplotlib.pyplot as plt

我试图在同一个文件夹中读取其他许多png照片中的png照片。有些照片使用以下行读取时没有错误,而有些返回“ ValueError:无效的PNG标头”。可能是什么原因?在我看来,它们都像普通照片一样。

plt.imread(filename)

Shi*_*lia 10

正如@MichM 已经说过,不知何故,您的图像的标题已更改,并且它不是有效的 png 图像。读取图像为

plt.imread(filename, 0)

如果您在https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imread.html?highlight=imread#matplotlib.pyplot.imread阅读 Matplotlib imread 的文档

--> 如果提供了格式,将尝试读取该类型的文件,否则从文件名中推断出格式。如果不能推断出任何内容,则尝试使用 PNG。<--


Mic*_*chM 2

事实证明,在我获得这些文件之前,一定有人手动将 jpg 文件更改为 png 扩展名。这些文件可以在操作系统的图片查看器中正确打开,因此看起来与同一批次中的实际 png 文件没有区别,但它们不能由 python 脚本作为 png 文件进行处理——因为它们不是。他们没有阿尔法通道。