Python 探测图片文件类型
Table of Contents
- 1. 探测图片类型
- 1.1. Python magic
 - 1.2. imghdr
 - 1.3. PIL.Image
 
 
探测图片类型
今天遇到一个小问题,如何探测图片的文件类型。总结如下:
python magic
magic 模块的github地址在这, 可以用来方便地探测文件类型,使用示例如下,可以方便地探测一个文件或是字节流文件。
>>> import magic
>>> magic.from_file("testdata/test.pdf")
'PDF document, version 1.2'
>>> magic.from_buffer(open("testdata/test.pdf").read(1024))
'PDF document, version 1.2'
>>> magic.from_file("testdata/test.pdf", mime=True)
'application/pdf'imghdr
python提供的标准库 imghdr 可以用来确定图片的类型,参见这里。
API如下:
imghdr.what(filename[, h]) # 接受文件名作为参数。如果提供了字节流作为第二个参数,那么第一个文件名参数会被忽略,从而探测字节流的图片类型
简单的例子如下:
>>> import imghdr
>>> imghdr.what('bass.gif')
'gif'可能的返回类型如下:
- '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
 
PIL.Image
使用PIL也可以检测图片类型,例子如下:
from PIL import Image img = Image.open(filename) print(img.format) # 'JPEG'
而且可以用 PIL 方便地转化图片格式,它会自动检测后缀以合适的格式保存:
相关推荐
  生物信息学    2020-06-18  
   kernelstudy    2020-06-16  
   atb    2020-04-18  
   iamplane    2020-03-26  
   linuxisperfect    2020-03-05  
   taiyangshenniao    2019-12-27  
   WordPress    2019-12-15  
   icycolawater    2011-05-08  
   芒果先生Mango    2017-09-04  
   Will0    2012-03-21  
   zealfish    2019-03-09  
   85520694    2019-09-05  
   84407805    2019-08-25  
   futurezone    2014-10-17  
   tugangkai    2017-05-23  
   wangfengqingyang    2011-10-19  
   哥哥的CSDN集    2011-07-02  
   Attend    2011-06-09