【问题标题】:Extracting GPS metadata from hex of JPG image从 JPG 图像的十六进制中提取 GPS 元数据
【发布时间】:2017-05-01 16:37:14
【问题描述】:

我正在尝试按照本教程从十六进制中提取 GPS 元数据,但无法理解为什么最后纬度和经度的长度为 24 且值为 42 和 73: http://itbrigadeinc.com/post/2012/03/06/Anatomy-of-a-JPG-image.aspx http://www.itbrigadeinc.com/post/2012/03/16/Seeing-the-EXIF-data-for-a-JPG-image.aspx

我找到了纬度和经度标签(00 02 00 05 00 00 00 03 00 00 02 42)和(00 04 00 05 00 00 00 03 00 00 02 5A)。据我了解,如果 count = 3,那么它们的值应该跟在标签的最后 4 个字节中。但是 02 42 和 02 5A 不是“42”和“73”...

谁能解释我出了什么问题?

请不要推荐任何工具 - 我需要手动操作。

【问题讨论】:

    标签: gps hex metadata extract exif


    【解决方案1】:

    您还需要考虑每个值的大小。计数为 3,但每个的大小都大于一个字节。因此它不适合四个字节,而这四个字节表示该值的偏移量。

    GPS 数据通常存储为三个有理数,其中每个有理数是两个 32 位整数(分子、分母)。因此,您有三个纬度值,但每个值都是 8 个字节。 24 个字节不适合 TIFF 标记,因此它存储在文件中的其他位置,您看到的四个字节是指向它的指针。您需要查看规范以找出该指针的相对位置,因为它可能不是文件的开头。

    查看我的元数据提取器库(Java 和 C#)以供参考。

    【讨论】:

      【解决方案2】:

      显然 24 位数据类型是 PropertyTagTypeRational https://msdn.microsoft.com/en-us/library/ms534414(v=vs.85).aspx

      指定值数据成员是无符号长整数对的数组。每对代表一个分数;第一个整数是分子,第二个整数是分母。

      主要来自:Getting GPS data from an image's EXIF in C#

      这段 python 代码也可能很好地提示您如何解码数据http://eran.sandler.co.il/2011/05/20/extract-gps-latitude-and-longitude-data-from-exif-using-python-imaging-library-pil/

      【讨论】:

        猜你喜欢
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-26
        • 2022-01-02
        • 2019-06-22
        相关资源
        最近更新 更多