Python 探测图片文件类型

探测图片类型

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

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 方便地转化图片格式,它会自动检测后缀以合适的格式保存:

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")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值