两种方式,一种是直接采用 imghdr
库;另一种是判断图片字节流信息.
1. 采用 imghdr 库
如:
import imghdr
imghdr.what('bass.gif')
imghdr.what
图片类型返回格式支持列表:
Value | Image format |
---|---|
'rgb' | SGI ImgLib Files |
'gif' | GIF 87a and 89a Files |
'pbm' | Portable Bitmap Files |
'pgm' | Portable Graymap Files |
'ppm' | Portable Pixmap Files |
'tiff' | TIFF Files |
'rast' | Sun Raster Files |
'xbm' | X Bitmap Files |
'jpeg' | JPEG data in JFIF or Exif formats |
'bmp' | BMP files |
'png' | Portable Network Graphics |
'webp' | WebP files |
'exr' | OpenEXR Files |
2. 根据字节信息
每种文件格式最开头的几个字节存放的一般都是该文件的magic number,用来标识这个文件的格式。
jpg文件格式的magic number是FF D8,把文件以二进制形式读取,然后判断一下前两个字节是不是FF D8 即可判断是否为 jpg 格式,
如:
jpgfile = "./test.jpg"
jpg_magic_number = open(jpgfile, "rb").read(2)
if jpg_magic_number == b"\xff\xd8":
print('jpg')
各种文件格式的 magic number:https://www.garykessler.net/library/file_sigs.html