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信息相关推荐

  1. C# 获取图片的EXIF 信息

    关于 EXIF 信息的介绍. 1  EXIF,是英文Exchangeable Image File(可交换图像文件)的缩写.EXIF是一种图像文件格式,只是文件的后缀名为jpg.EXIF信息是由数码相 ...

  2. JS获取图片的EXIF信息+纠正图片方向

    前端图片处理碰到的一个离奇 bug , 关于图片的 EXIF 信息,特地记录下来 . 然后使用一下代码可以获取Orientation信息,并纠正Orientation带来的图片旋转问题 // from ...

  3. 获取图片的EXIF信息如此困难?

    对于数码相机所拍摄出的图片,Exif信息非常重要.Exif是英语Exchangeable Image File(可交换图像文件)的缩写,最初由日本电子工业发展协会(JEIDA --Japan Elec ...

  4. [转]数码照片的JPG文件高级信息(用C#读取图片的EXIF信息)

    [转]数码照片的JPG文件高级信息(用C#读取图片的EXIF信息) 数码相机的照片很多,而且文件名也不直观,所以写了个程序批量改名,就是把文件名都改成相机的拍照日期,呵呵,谁知道拍照日期不是那么好取, ...

  5. 在Android下通过ExifInterface类操作图片的Exif信息

    什么是Exif 先来了解什么是Exif.Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了 数码照片的信息,包括拍摄的光圈.快门.平衡白.I ...

  6. php exif信息,php通过exif_read_data函数获取图片的exif信息

    php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 echo "test1.jpg: \n"; $exi ...

  7. python相机拍照显示时间_python让图片按照exif信息里的创建时间进行排序的方法...

    本文实例讲述了python让图片按照exif信息里的创建时间进行排序的方法.分享给大家供大家参考.具体分析如下: 我们经常会从不同的设备里取出照片,比如照相机,手机,iphone等等,操作系统记录的创 ...

  8. php exif信息,php如何给jpg图片写入exif信息?

    在写一个php把图片方向根据exif旋转过来的功能,功能是做好了,但是旋转之后的图片文件exif信息都没了,因为我用imagejpeg重写了图片,请问怎么把exif写回去? 贴一下我旋转图片的代码: ...

  9. php exif信息,php通过exif_read_data函数获取图片的exif信息_php技巧

    php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 \n"; $exif = exif_read_data('te ...

  10. php exif信息,php通过exif_read_data函数获取图片的exif信息 PHP

    php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 echo 'test1.jpg: \n'; $exif = exif_r ...

最新文章

  1. 《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.11. Tcl-8.6.3...
  2. 第七章 前端开发——前端工程化(NPM、脚手架、前端环境搭建)
  3. python 三数之和
  4. OAM Kubernetes 标准实现与核心依赖库发布 | 云原生生态周报 Vol. 52
  5. php中文网面试题_2020年PHP面试题大汇总(收藏)
  6. 饥荒联机版服务器显示错误,小白求问 搭服务器出现这种情况是怎么回事
  7. kafka集群为什么需要三个节点_大白话带你认识 Kafka
  8. 10分钟带你学会微信小程序的反编译
  9. c语言block内部的实现原理,iOS中block变量捕获原理详析
  10. ImageFun 使JPG的缩略图跟原图不一样 (刷微博必备)
  11. ROS的学习(十)rqt_console和roslaunch
  12. 超定方程组的经典Gram-Schmidt正交化解法
  13. 数据挖掘原理与实践学习(3)
  14. 安川机器人程序还原_安川机器人程序示例
  15. Mybatis对Double类型的字符串进行范围查询
  16. 关于传奇客户端及补丁文件相关合集
  17. html中版权号怎么打,网站底部版权符号怎么打出来
  18. 《2023新一代数字办公白皮书》正式发布!| 爱分析报告
  19. 一行输入两个整数,以空格间隔
  20. Google Earth上划定矢量范围并导出为KMZ文件

热门文章

  1. 瀛洲大学计算机专业毕业 卖身,目前计算机芯片 ( 集成电路 ) 制造的主要原料 } 是 () ,它是一种可以在沙子中提炼出的物质。_学小易找答案...
  2. 瀚高数据库不定时停库
  3. 网络重置后,WiFi模块没了,网络适配器感叹号
  4. 移动光猫怎么设置虚拟服务器设置,移动光纤怎么设置无线路由器?
  5. Web前端之CSS(2)——框
  6. 杭州天目山路招PHP,杭州地铁3号线汽车西站站开始主体施工 天目山路部分路面要开挖了...
  7. 计算机综合应用技能,系统测评计算机综合应用技能期末作业题稿.doc
  8. 新疆计算机操作题,新疆维吾尔自治区教师计算机操作题复习套
  9. ac命令行隐藏ssid_胖AP性能,多SSID,SSID隐藏,评测小结
  10. LaTex图表中英文标题,中英文图表目录2