IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【python标准库】通过编码鉴别图像类型 -> 正文阅读

[Python知识库]【python标准库】通过编码鉴别图像类型

imghdr是python标准库中非常短小的一个模块,只有一个功能,就是识别图像的类型,而通过查看imghdr中的成员,则可看出这个包所能鉴别的图像类型。

>>> dir(imghdr)
[#内置参数就省略不写了。。。
'test', 'test_bmp', 'test_exr', 'test_gif', 'test_jpeg', 'test_pbm', 'test_pgm', 'test_png', 'test_ppm', 'test_rast', 'test_rgb', 'test_tiff', 'test_webp', 'test_xbm', 'testall', 'tests', 'what']

其中真正有些实用频率的函数也只有一个what

>>> imghdr.what('cuda.png')
'png'

按理说这么简单的模块是没有什么讲解价值的,但这个模块是完全用python写的,换句话说,查看其源码,就能知道这些图像的文件头。

例如其鉴别gif的方法为

def test_gif(h, f):
    """GIF ('87 and '89 variants)"""
    if h[:6] in (b'GIF87a', b'GIF89a'):
        return 'gif'

也就是说,gif文件的前六位必然为GIF87a或者GIF89a,改为十六进制则为47 49 46 38 37 61,由此可知这些图像格式的鉴别方法,在下表中h为16进制的图像数据

what图像格式鉴别方法
‘jpeg’JFIF格式
Exif格式
h[6:10]=b'JFIF'
h[6:10]=b'Exif'
‘png’便携式网络图像h[:8]=b'\211PNG\r\n\032\n'
‘gif’GIF87a文件
89a文件
h[:6]=b'GIF87a'
h[:6]=b'GIF89a'
‘bmp’BMP文件h[:2]=b'BM'
‘tiff’TIFF 文件h[:2]=b'MM'h[:2]=b'II'
‘rgb’SGI图像库文件h[:2]=b'\001\332'
‘webp’WebP 文件h[:4]='RIFF'h[8:12]=b'WEBP'
‘rast’Sun 光栅文件h[:4]=b'\x59\xA6\x6A\x95'
‘exr’OpenEXR文件h[:4]=b'v/1\x01'
‘xbm’X 位图文件h[:8]=b'#define '

此外,pbm, pgm, ppm这三种格式均以b'P'开头,第三位为b' \t\n\r'中的一种,区别在于第二位

格式h[1]
‘pbm’便携式位图文件h[1] in '14'
‘pgm’便携式灰度图文件h[1] in b'25'
‘ppm’便携式像素表文件h[1] in b'36'
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:46:09  更:2021-12-08 13:46:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:39:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码