还有一个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开头的段便是该图像的元数据):
图片Exif信息-LMLPHP

当检测某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存的是厂商自己独有的注释(每个厂商的这一项都不一样),其他的可以暂时忽略。

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

图片Exif信息-LMLPHP

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

图片Exif信息-LMLPHP

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

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

图片Exif信息-LMLPHP

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

<img src="//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL3BpYzQuemhpbWcuY29tLzY2MjQxMmQ0MWUyYmFhY2IzYTRhMTZjZTg5ZjY2OGVmX2IuanBn.jpg" data-rawwidth="901" data-rawheight="511" class="origin_image zh-lightbox-thumb" width="901" data-original="https://pic4.zhimg.com/662412d41e2baacb3a4a16ce89f668ef_r.jpg">图片Exif信息-LMLPHP
点击红色按钮可以详细查看被修改过的地方:
<img src="//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL3BpYzEuemhpbWcuY29tL2I3MGY2YzBhYzE0Njk0ZTA1NDVkZDU4M2QzOGRmMWMwX2IuanBn.jpg" data-rawwidth="429" data-rawheight="389" class="origin_image zh-lightbox-thumb" width="429" data-original="https://pic1.zhimg.com/b70f6c0ac14694e0545dd583d38df1c0_r.jpg">
图片Exif信息-LMLPHP


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

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

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

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

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

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

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

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

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

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

图片Exif信息-LMLPHP
照片属性可以看到部分EXIF信息

图片Exif信息-LMLPHP
其他看图软件也能读取EXIF信息

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

图片Exif信息-LMLPHP
采用专业软件可以获取更多的EXIF信息

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

图片Exif信息-LMLPHP

05-11 16:03