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 Imageimg = Image.open(filename)print(img.format)# "JPEG"而且可以用
PIL 方便地转化图片格式,它会自动检测后缀以合适的格式保存:
import Imageim = Image.open("test.jpg")im.save("test.tiff")# or "test.tif"# 或者手动指定格式import Imageim = Image.open("file.png")im.save("file.jpg", "JPEG")本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/137768.htm