码迷,mamicode.com
首页 > 其他好文 > 详细

图片Exif信息

时间:2016-11-27 23:52:35      阅读:645      评论:0      收藏:0      [点我收藏+]

标签:介绍   机器   厂商   开头   菜单   enter   get   jpg   irb   

可交换图像文件常被简称为ExifExchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。

Exif最初由日本电子工业发展协会在1996年制定,版本为1.0。1998年,升级到2.1,增加了对音频文件的支持。2002年3月,发表了2.2版。

Exif可以附加于JPEGTIFFRIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。

Windows 7操作系统为例,最简单的查看Exif信息的方法是右键点击图片打开菜单,点击属性并切换到详细信息标签下即可。

Exif信息是可以被任意编辑的,因此只有参考的功能。

Exif信息以0xFFE1作为开头标记,后两个字节表示Exif信息的长度。所以Exif信息最大为64 kB,而内部采用TIFF格式。


        还有一个xmp文件,这里是adobe为了给raw读取提速而单独新增的一个附加文件

JPEG文件格式简述
JPEG文件的结构其实很简单和直观,你可以用一些专门的软件去查看,比如JPEGsnoop、MagicEXIF,你可以看到一个JPEG文件里有其实很多段(Marker),比如SOI、APP0、APP1、APP13、DQT、SOF0、DHT、EOI等等,每个段都储存了自己特定的信息,如DQT存的是用于解码的Zig Zag量化表的。不过,我们关注的一般是都是以APP开头的那些段,那些段在解码JPEG图像的时候不是必须的,但是它们储存了很多辅助的元数据。EXIF的信息就是储存在APP1段当中的。

下图中是用MagicEXIF打开的一张被Photoshop修改过的JPEG图像结构(置灰的段是与JPEG编码解码有关的,而没有置灰、以APP开头的段便是该图像的元数据):
技术分享

当检测某JPEG文件是否为原图的时候,首先会检查有没有由编辑软件插入的APP段,比如Photoshop会插入APP13(Photoshop IRB 图像资源)、APP2(ICC色彩配置)、APP14等等的段,若果检测到这些段存在,则可以直接知道图像被编辑过了,无需往下继续检测。

如果没有这些段,则我们会继续关注具体的EXIF数据。

关于EXIF的结构这样也还是需要说一下,EXIF的全部项目是储存在一种叫IFD的结构中的,IFD就好像是文件夹一样,里面包括里具体的EXIF项目。APP1里一般可以找到2个主要的IFD项目:IFD0和IFD1,IFD0是主图的元数据,而IFD1则是缩略图的元数据,不过我们一般只关注主图的数据。在IFD0中除了自己的项目外,还包括了EXIF Sub IFD(下面简称“子IFD”)、GPS IFD,而子IFD中又进一步包括了Interoperability IFD(简称IOP)和MakerNote IFD,每个IFD存的都是跟独有的元数据。这个好像很复杂,你只需要记住的是,EXIF中有这么这么几个“文件夹”:IFD0存的是主图的图像信息,子IFD存的是拍摄信息、GPS IFD存的是图像的GPS地理数据、MakerNote IFD存的是厂商自己独有的注释(每个厂商的这一项都不一样),其他的可以暂时忽略。

技术分享
在检测原图的时候,首先要看看在IFD0图像信息里面的“软件”一项(看上图)。这一项记录的是图像最后被修改的软件,原始的图像记录的内容应该是其固件的名字和版本(佳能的机器直接不记录这一项),所以如果这一项为“Adobe Photoshop XXX”或“meitu”之类的,那么图像也是一定被修改过的;如果是佳能的照片(可以参照上面的“制造商”一项),那么根本就不应该出现这一项,要是存在的话肯定也是被修改过的。
此外,也要看看IFD0里面的“修改时间”和子IFD中的“拍摄时间”以及“数字化时间”是否一致,因为很多图像编辑器在转存后会更新“修改时间”一项而不更新另外两项。

技术分享

其次,另外一个最最重要的判断标准是否为原图的标准是MakerNote IFD存不存在。上面已经说过,MakerNote 就是相机厂商留下的自己的自定义注释,里面存了很多非EXIF定义的项目(比如快门次数、人脸检测等等),绝大部分图像编辑软件转存后会令图像丢失这部分信息

技术分享

MakerNote 是储存在子IFD中的,因为每个厂商在这一栏储存的数据都是不一样的,因此你可以用JPEGsnoop、MagicEXIF等软件来检测MakerNote 的类型,从而比较它是否与IFD0中的“生产商”一致。

关于原图检测的最后一个重磅武器是检测图像的压缩特征。压缩特征是指图像编码的时候留下的独有的特征,不同的机器和软件留下的特征都是不同的,这个跟EXIF和其他元数据都没有任何关系。据我所知,以前淘宝的对于原图不会检测压缩特征,但是现在淘宝会把这一项加入到机检中,但是如果你确保图像是原图的话,这一项是必不可少的。常用来比对压缩特征的软件是JPEGsnoop,打开一张图拉倒最后后,你就会看到它自动反馈的结果,一般结果为 Class 3 的话就说明该图压缩特征与数据库吻合。淘宝检测压缩特征的时候,主要不是看压缩特征与相机原始特征匹配不匹配,而是看是不是由Photoshop生成的压缩特征。

技术分享

可以用JPEGsnoop对照片的元数据进行检测,也可以用MagicEXIF 1.06版本的内置检测功能,使用方法很简单,打开一张图后,如果软件右下角有红色的“非原始图像”的提示,说明exif被修改过,当然用MagicEXIF也可以自动修复这些被篡改的数据。

技术分享
点击红色按钮可以详细查看被修改过的地方:
https://pic1.zhimg.com/b70f6c0ac14694e0545dd583d38df1c0_r.jpg">
技术分享


为什么Exif信息修改/删除有痕迹?
EXIF信息修改后之所以会留下痕迹是因为经过软件重新编码后的EXIF数据段与原始不太相同了。

其实每个厂商的EXIF编码都有自己的特征的,比如尼康的EXIF有固定长度、索尼的EXIF在文本型数据的偏移量后还会多出一个NULL字节等等等等,这些小特征一般EXIF修改软件(比如opanda powerexif、exifdateeditor等)都不会注意,所以重新保存后的图就会丢失这些特定厂商、或者特定固件、特定型号才有的编码风格。

此外,很多软件因为无法读取EXIF中的“厂商注释”数据(即由厂商自己定义、不对外公布、不受EXIF标准限制的数据),更无法正确重新编码,导致保存后的图像的这部分数据丢失或者损坏,厂商注释数据的完整性便成为了判断照片有没有被修改的重要标准。

当然也有小部分专门的软件比较强大可以兼顾以上的特征的,比如MagicEXIF编辑器,会最大限度按照原始图进行保存,这些小特征保存后不会丢失~

如何删除手机照片的隐私数据(EXIF元数据)?

手机会暴露你的很多隐私,包括用手机拍摄的照片,能够暴露你意想不到多的信息。从手机型号、操作系统版本、拍摄时间、地点(经纬度坐标)、海拔等等,都一一被记录了下来。

如果您在发出这种原始数码照片的时候,未经过处理,那么很有可能就暴露了您的隐私。尤其对于一些爱自拍的女孩,如何清除手机照片里面记录的坐标、手机型号等隐私内容,尤为重要。

下面就介绍一下如何删除手机照片的EXIF信息:

1、首先将手机照片倒出到电脑;

2、在Windows系统里面操作非常简单,鼠标右键单击数码照片文件,选择“属性”;

技术分享
照片属性可以看到部分EXIF信息

技术分享
其他看图软件也能读取EXIF信息

3、然后在属性界面点击“详细信息”,里面就可以看到部分的EXIF信息。其实有太多太多的信息这里没有显示出来,比如坐标信息。

技术分享
采用专业软件可以获取更多的EXIF信息

4、点击“删除属性和个人信息”链接,并选择“创建不包含任何可删除属性的副本”,这样就可以把EXIF元数据给删除掉了。不过最好使用专业的清除EXIF工具,清理的更彻底。

技术分享

 





图片Exif信息

标签:介绍   机器   厂商   开头   菜单   enter   get   jpg   irb   

原文地址:http://www.cnblogs.com/doit8791/p/6107254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!