Python 探测图片文件类型

python

Table of Contents

  • 1. 探测图片类型

    • 1.1. python magic
    • 1.2. imghdr
    • 1.3. PIL.Image

今天遇到一个小问题,如何探测图片的文件类型。总结如下:

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'

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也可以检测图片类型,例子如下:

from PIL import Image

img = Image.open(filename)

print(img.format) # 'JPEG'

而且可以用 PIL 方便地转化图片格式,它会自动检测后缀以合适的格式保存:

import Image

im = Image.open('test.jpg')

im.save('test.tiff') # or 'test.tif'

# 或者手动指定格式

import Image

im = Image.open("file.png")

im.save("file.jpg", "JPEG")

以上是 Python 探测图片文件类型 的全部内容, 来源链接: utcz.com/z/387351.html

回到顶部