imghdr:检测图片的类型

imghdr专门用来查看图片的格式

import imghdr

t = imghdr.what(r"C:\Users\satori\Desktop\module\pic\1.png")
print(t)  # png

检测出图片是png格式的,可能有人觉得根据文件名后缀不就可以判断了吗。我们将图片的后缀改成jpg再来试试

import imghdr

t = imghdr.what(r"C:\Users\satori\Desktop\module\pic\1.jpg")
print(t)  # png

我们看到依旧是png格式,这是因为不同格式的图片的结构不一样,即使把后缀名改了,但是图片的结构还是原来的png格式的

另外我们看到这里接收一个文件名,但是我们从网上获取的一般是字节流,那么可不可以直接对字节流进行判断呢?答案是可以的。

import imghdr

f = open(r"C:\Users\satori\Desktop\module\pic\1.jpg", "rb")
# what可以接收两个参数,第一个是文件名,必传的。第二个是字节流,默认为None
# 所以我们之前只传递一个文件名即可,会根据文件名读取指定文件、然后判断
# 但如果是字节流,则通过第二个参数传递。并且一旦指定了字节流,那么就不会根据文件名来读取文件了
# 所以第一个参数指定为None即可,因为我们说它是必传的。当然传其它的也可以,因为指定了字节流的话、第一个参数就不管了
t = imghdr.what(None, f.read())
print(t)  # png

依旧得到了png格式。

imghdr能检测的图片格式有以下几种:

猜你喜欢

转载自www.cnblogs.com/traditional/p/12570989.html