JPG插入GPS信息

2018-05-31  本文已影响0人  感雨韵

本文不具体讨论JPG格式,只讨论如何在JPG文件中插入GPS信息,并顺带介绍一点有关EXIF规范的内容。

具体展开:


SOI                 FF D8   

APP1
                    FF E1                   APP1段标识码
                    00 AC                   APP1段长度,不包括APP1的TAG字段
                    45 78 69 66 00 00       "Exif",以00 00 结尾 

    "Tiff header"
                    4D 4D                   "MM",表示大端模式
                    00 2A                   固定值
                    00 00 00 08             0th IFD的偏移地址,从"MM"算起    
    0th IFD                 
                    00 01                   IFD Pointer的个数,每个IFD段12个字节,这里只有GPS一个段

        GPS IFD Pointer     
                    88 25                   GPS Info IFD Pointer,固定值
                    00 04                   LONG,固定值
                    00 00 00 01             COUNT,固定值
                    00 00 00 16             GPS IFD的偏移地址,从"MM"算起,该偏移地址+0xC(SOI到“exif”)就是实际从文件开始的偏移地址

    GPS IFD 
                    00 07                   GPS attribute的个数

                    00 00                   GPSVersionID,固定值
                    00 01                   BYTE,固定值
                    00 00 00 04             COUNT,固定值,4个BYTE
                    02 02 00 00             版本号,2.2.0.0

                    00 01                   GPSLatitudeRef,固定值
                    00 02                   ASCII,固定值
                    00 00 00 02             COUNT,固定值,2个ASCII
                    4E 00 00 00             北纬

                    00 02                   GPSLatitude,固定值
                    00 05                   RATIONAL,固定值
                    00 00 00 03             COUNT,固定值,3个RATIONAL
                    00 00 00 6C             实际Latitude的存放的偏移地址,从"MM"算起,+0xC为实际偏移地址

                    00 03                   GPSLongitudeRef,固定值
                    00 02                   ASCII,固定值
                    00 00 00 02             COUNT,固定值,2个ASCII
                    45 00 00 00             东经

                    00 04                   GPSLongitude,固定值
                    00 05                   RATIONAL,固定值
                    00 00 00 03             COUNT,固定值,3个RATIONAL
                    00 00 00 84             实际Longitude的存放的偏移地址,从"MM"算起,+0xC为实际偏移地址

                    00 05                   GPSAltitudeRef,固定值
                    00 01                   BYTE,固定值
                    00 00 00 01             COUNT,固定值,1个BYTE
                    00 00 00 00             以海平面为基准

                    00 06                   GPSAltitude,固定值
                    00 0a                   SRATIONAL,固定值
                    00 00 00 01             COUNT,固定值,1个SRATIONAL
                    00 00 00 9C             实际Altitude的存放的偏移地址,从"MM"算起,+0xC为实际偏移地址
    GPS value
                    00 00 00 71 00 00 00 01 00 00 00 37 00 00 00 01 00 00 00 6C 00 00 00 04     实际的Latitude值
                            0x71/0x01=113度          0x37/0x01=55分           0x6C/0x04=27秒
                    00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 0F 42 40     实际的Longitude
                            
                    00 00 00 00 00 00 03 E8                                                     实际的Altitude
APP0                    
                    FF E0                   APP0段标识码

.                   .
.                   .
.                   .
上一篇 下一篇

猜你喜欢

热点阅读