jpeg图片的exif信息
EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数
据,可以记录数码照片的拍摄参数、缩略图及其他属性信息。exif其实是jpeg文件的一种,遵从jpeg标准,只是在文件
头信息中增加了有关拍摄信息的内容和索引图。
JEPG文件头必须以0xFF 0xD8开头,0xFF 0xD9结尾。然后后面会跟着出现以0xFF 0xE0为起始的application0,
0xFF 0xE1为起始的application1,以此类推。而exif信息就再app1里面。
按照 Exif 标准对这些标识符的定义,数码相机可以把各种拍摄信息记入数码图像中,应用软件可以读取这些数据,
再按照 Exif 标准,检索出它们的具体含义,一般而言包括以下一些信息:
标签号
|
Exif 定义名
|
中文定义名
|
备注
|
---|---|---|---|
0x010E | ImageDescription | 图像描述 | - |
0x013B | Artist | 作者 | 使用者的名字 |
0x010F | Make | 生产商 | 相机生产厂家 |
0x0110 | Model | 型号 | 相机型号 |
0x0112 | Orientation | 方向 | 有的相机支持,有的不支持 |
0x011A | XResolution | 水平方向分辨率 | - |
0x011B | YResolution | 垂直方向分辨率 | - |
0x0128 | ResolutionUnit | 分辨率单位 | - |
0x0131 | Software | 软件 | 固件Firmware版本或编辑软件 |
0x0132 | DateTime | 日期和时间 | 照片最后的修改时间 |
0x0213 | YCbCrPositioning | YCbCr定位 | 色度抽样方法 |
0x8769 | ExifOffset | Exif子IFD偏移量 | - |
0x829A
|
ExposureTime | 曝光时间 | 即快门速度 |
0x829D | FNumber | 光圈系数 | 光圈的F值 |
0x8822 | ExposureProgram | 曝光程序 | 自动曝光、光圈优先、快门优先、M档等 |
0x8827 | ISOSpeedRatings | ISO感光度 | Exif 2.3 中更新为 “PhotographicSensitivity” |
0x9000 | ExifVersion | Exif 版本 | 参见“历史版本”一节 |
0x9003 | DateTimeOriginal | 拍摄时间 | 照片拍摄的时间 |
0x9004 | DateTimeDigitized | 数字化时间 | 照片被写入内存卡的时间 |
0x9204 | ExposureBiasValue | 曝光补偿 | - |
0x9205 | MaxApertureValue | 最大光圈 | APEX为单位 |
0x9207 | MeteringMode | 测光模式 | 平均测光、中央重点测光、点测光等 |
0x9208 | Lightsource | 光源 | 一般记录白平衡设定 |
0x9209 | Flash | 闪光灯 | 记录闪光灯状态 |
0x920A | FocalLength | 镜头焦距 | 镜头物理焦距 |
0x927C | MakerNote | 厂商注释 | 参见“厂商注释”一节 |
0x9286 | UserComment | 用户注释 | 用户自定义数据 |
0xA000 | FlashPixVersion | FlashPix版本 | - |
0xA001 | ColorSpace | 色彩空间 | 一般为sRGB |
0xA002 | ExifImageWidth | 图像宽度 | 图像横向像素数 |
0xA003 | ExifImageLength | 图像高度 | 图像纵向像素数 |
0xA433 | LensMake | 镜头生产商 | - |
0xA434 | LensModel | 镜头型号 | - |
下面单独对exif进行分析:
FF D8:jpeg文件起始标志
FF E1:app1标志,直接从app1开始,表示没有app0
00F4:app1的长度为244字节
45 78 69 66 00 00:“exif”字符串
49 49:表示小端,小端的时候要格外注意其取字符的时候是从后往前取,才能获得正确的数据。4D 4D表示大端。
2A 00:固定不变
08 00 00 00:固定不变,同时也是偏移量
05 00:表示有5个tag
接下来的,就是各个tag的详细信息:
每一个tag的长度都是12字节。
struct tag{
short id; //tag ID,比如上表的0x011A
short format; //数据格式,比如有些tag信息是数字,有的是文字
int count; //最多的字符个数
offset; //偏移量
}
比如上图:
1A 01:表示ID为0x011A,查表可知,表示水平方向分辨率
05 00:表示有理数、03表示short、02表示ASCII
01 00 00 00:
4A 00 00 00:表示偏移量,因为具体的信息是在后面存储的。这里的偏移需要加上08 00 00 00 = 82字节,而偏移量
要从ff e1后面开始算上图从第五个字符字节开始。此处可偏移到00 00 00 48 00 00 00 01,因为是有理
数,所以前面是分子,后面是分母,总共8个字节。
接下来还会有4个tag信息。
参考文档:
http://www.cppblog.com/lymons/archive/2010/02/23/108266.aspx#ExifMarker
jpeg图片的exif信息相关推荐
- C# 获取图片的EXIF 信息
关于 EXIF 信息的介绍. 1 EXIF,是英文Exchangeable Image File(可交换图像文件)的缩写.EXIF是一种图像文件格式,只是文件的后缀名为jpg.EXIF信息是由数码相 ...
- JS获取图片的EXIF信息+纠正图片方向
前端图片处理碰到的一个离奇 bug , 关于图片的 EXIF 信息,特地记录下来 . 然后使用一下代码可以获取Orientation信息,并纠正Orientation带来的图片旋转问题 // from ...
- 获取图片的EXIF信息如此困难?
对于数码相机所拍摄出的图片,Exif信息非常重要.Exif是英语Exchangeable Image File(可交换图像文件)的缩写,最初由日本电子工业发展协会(JEIDA --Japan Elec ...
- [转]数码照片的JPG文件高级信息(用C#读取图片的EXIF信息)
[转]数码照片的JPG文件高级信息(用C#读取图片的EXIF信息) 数码相机的照片很多,而且文件名也不直观,所以写了个程序批量改名,就是把文件名都改成相机的拍照日期,呵呵,谁知道拍照日期不是那么好取, ...
- 在Android下通过ExifInterface类操作图片的Exif信息
什么是Exif 先来了解什么是Exif.Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了 数码照片的信息,包括拍摄的光圈.快门.平衡白.I ...
- php exif信息,php通过exif_read_data函数获取图片的exif信息
php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 echo "test1.jpg: \n"; $exi ...
- python相机拍照显示时间_python让图片按照exif信息里的创建时间进行排序的方法...
本文实例讲述了python让图片按照exif信息里的创建时间进行排序的方法.分享给大家供大家参考.具体分析如下: 我们经常会从不同的设备里取出照片,比如照相机,手机,iphone等等,操作系统记录的创 ...
- php exif信息,php如何给jpg图片写入exif信息?
在写一个php把图片方向根据exif旋转过来的功能,功能是做好了,但是旋转之后的图片文件exif信息都没了,因为我用imagejpeg重写了图片,请问怎么把exif写回去? 贴一下我旋转图片的代码: ...
- php exif信息,php通过exif_read_data函数获取图片的exif信息_php技巧
php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 \n"; $exif = exif_read_data('te ...
- php exif信息,php通过exif_read_data函数获取图片的exif信息 PHP
php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 echo 'test1.jpg: \n'; $exif = exif_r ...
最新文章
- 《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.11. Tcl-8.6.3...
- 第七章 前端开发——前端工程化(NPM、脚手架、前端环境搭建)
- python 三数之和
- OAM Kubernetes 标准实现与核心依赖库发布 | 云原生生态周报 Vol. 52
- php中文网面试题_2020年PHP面试题大汇总(收藏)
- 饥荒联机版服务器显示错误,小白求问 搭服务器出现这种情况是怎么回事
- kafka集群为什么需要三个节点_大白话带你认识 Kafka
- 10分钟带你学会微信小程序的反编译
- c语言block内部的实现原理,iOS中block变量捕获原理详析
- ImageFun 使JPG的缩略图跟原图不一样 (刷微博必备)
- ROS的学习(十)rqt_console和roslaunch
- 超定方程组的经典Gram-Schmidt正交化解法
- 数据挖掘原理与实践学习(3)
- 安川机器人程序还原_安川机器人程序示例
- Mybatis对Double类型的字符串进行范围查询
- 关于传奇客户端及补丁文件相关合集
- html中版权号怎么打,网站底部版权符号怎么打出来
- 《2023新一代数字办公白皮书》正式发布!| 爱分析报告
- 一行输入两个整数,以空格间隔
- Google Earth上划定矢量范围并导出为KMZ文件
热门文章
- 瀛洲大学计算机专业毕业 卖身,目前计算机芯片 ( 集成电路 ) 制造的主要原料 } 是 () ,它是一种可以在沙子中提炼出的物质。_学小易找答案...
- 瀚高数据库不定时停库
- 网络重置后,WiFi模块没了,网络适配器感叹号
- 移动光猫怎么设置虚拟服务器设置,移动光纤怎么设置无线路由器?
- Web前端之CSS(2)——框
- 杭州天目山路招PHP,杭州地铁3号线汽车西站站开始主体施工 天目山路部分路面要开挖了...
- 计算机综合应用技能,系统测评计算机综合应用技能期末作业题稿.doc
- 新疆计算机操作题,新疆维吾尔自治区教师计算机操作题复习套
- ac命令行隐藏ssid_胖AP性能,多SSID,SSID隐藏,评测小结
- LaTex图表中英文标题,中英文图表目录2