判断图片是否为现场照片(Live Photo亦即内含Exif信息)

您所在的位置:网站首页 实况照片如何更改 判断图片是否为现场照片(Live Photo亦即内含Exif信息)

判断图片是否为现场照片(Live Photo亦即内含Exif信息)

2024-07-16 22:27| 来源: 网络整理| 查看: 265

判断图片是否为现场照片(Live Photo亦即内含Exif信息)

一、理论         1、什么是Exif信息和现场照片

        Exif信息是可以被任意编辑的,因此只有参考的功能。Exif信息以0xFFE1作为开头标记,后两个字节表示Exif信息的长度。所有Exif信息最大为64 kb,而内部采用TIFF格式。

Exif_百度百科可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif最初由日本电子工业发展协会在1996年制定,版本为1.0。1998年,升级到2.1,增加了对音频文件的支持。2002年3月,发表了2.2版。https://baike.baidu.com/item/Exif?fr=ala0_1_1        当1个图片文件包含Exif信息时,我们称该图片为现场照片,即:Live Photo。

        2、现场照片(iPhone称实况照片)的直观的判断           1.2.1、右键图片文件,属性,总是包含“照相机”的文件扩展对象的属性信息

         但是,文件的这个扩展对象的属性,是可以被我们认为的修改的,改后可能就抹掉了。你如我们可以用Adobe PhotoShop来更改它,抹掉后,它就不再包含Exif的具体字段信息了;但它仍旧是现场照片(除非你把它转储为Web所用格式,即进行了内存转储),因为格式你改不了的。

        怎么改呢,看看:

https://jingyan.baidu.com/article/af9f5a2d2f443443140a4590.htmlicon-default.png?t=M1L8https://jingyan.baidu.com/article/af9f5a2d2f443443140a4590.html

          1.2.2、当你用记事本强行打开1个现场照片时,它的内容的头部,总是包含Exif  MM字样:

          注意,是“Exif  MM”字样【或“xif  MM”字样(iPhone照片转为jpg后)】,并非“ExifJPEG”格式的压缩字样,因为ExifJPEG它有可能也是一种JFIF文件(JPEG文件内部交换格式),而JFIF文件并非现场照片。

          JPEG/JFIF是万维网(World Wide Web)上最普遍的被用来存储和传输照片的格式。它并不适合于线条绘图(drawing)和其他文字或图标(iconic)的图形,因为它的压缩方法用在这些类型的图形上,得到的结果并不好(PNG和GIF通常是用来存储这类的图形;GIF每个像素只有8比特,并不很适合于存储彩色照片,PNG可以无损地存储照片(iPhone的照片即为PNG无损照片格式),但是文件太大的缺点让它不太适合在网络上传输)。

          PNG和GIF也有可能包含Exif信息,也有可能是现场照片。

          Android手机和华为鸿蒙HarmonyOS现场照片一般用JPEG格式来储存的,而苹果Apple现场照片一般使用PNG格式存储。 

          无论是JPEG、还是PNG或GIF格式的图片,也无论它们是否被第三方软件进行过格式之间的转化,如果它们是现场照片,都有1个共同特征,就是:Exif信息以0xFFE1作为开头标记,后两个字节表示Exif信息的长度。所以Exif信息最大为64 kb,而内部采用TIFF格式。

           比如,iPhone的QQ邮箱app发送其上现场照片(实况照片):

            自动打包为.zip后发送QQ电子邮件 :

 对Exif格式及其信息的特别权限,包括位置信息和Exif元数据信息:

        iPhone的PNG无损现场照片,操作系统邮件-属性-详细信息,是看不到Exif信息的,但:并不代表它不包含Exif信息,并不代表它不是现场照片:

         而Android的JPG有损现场照片或PNG被转化JPG后的的文件不同,操作系统邮件-属性-详细信息,总是能够看到Exif信息的:

             iPhone的QQ邮箱发送后,接收端:

            下载后,用Delphi App打开照片,均会返回一致的Exif信息: 

            无论是JPEG、还是PNG或GIF格式的图片,也无论它们是否被第三方软件进行过格式之间的转化,如果它们是现场照片,都有1个共同特征,就是:Exif信息以0xFFE1作为开头标记,后两个字节表示Exif信息的长度。所以Exif信息最大为64 kb,而内部采用TIFF格式:

二、如何判断图片是否为现场照片         2.1、有了一、理论的描述,可以取文件头的特征字节

          如果文件流的头部包含有“0xFFE1”,那么它就是内含Exif信息的现场照片,否则就不是。

          在内存中:

          Exif_Buffer特征信息每字节8位表示:000000FF000000E1           Exif_Buffer特征信息每字节4位表示:00FF00E1

          Exif信息以0xFFE1作为开头标记,后两个字节表示Exif信息的长度。Exif信息最大为64 kb,而内部采用TIFF格式(通用的扫描图像文件的格式)。

        2.2、Delphi编程判断图片是否为照片并提取Exif的详细信息

          (略)。

喜欢的话,就在下面点个赞、收藏就好了,方便看下次的分享:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3