两种方式,一种是直接采用 imghdr 库;另一种是判断图片字节流信息.

1. 采用 imghdr 库

https://docs.python.org/3/library/imghdr.html

如:

import imghdr

imghdr.what('bass.gif')

imghdr.what图片类型返回格式支持列表:

ValueImage 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

Last modification:November 17th, 2021 at 10:59 am