gpt4 book ai didi

file - 使用Delphi读取Exif GPS信息

转载 作者:行者123 更新时间:2023-12-03 15:48:20 24 4
gpt4 key购买 nike

我需要从我的照片中获取地理位置信息。纬度/经度和 GPS 版本。我已经找到了与这个问题相关的一些信息,我比较了不同的 EXIF header 并找到了一个为我提供坐标的十六进制转储 - 现在我需要从文件中获取它。

这个问题可能看起来很简单。如何在 Delphi 中打开 JPEG 文件以获得必要的十六进制转储?

已经尝试读取字符和整数,但没有任何效果。如果可能的话,我希望不使用任何外部库来完成此任务。

这基本上是我的主要问题,但如果有人能再回答一个问题,我将非常高兴。

有没有一种简单的方法可以搜索 GPS 标签,而无需在文件中搜索特定转储?现在我正在寻找一个奇怪的组合 12 00 02 00 07 00,它确实有效。我已阅读 EXIF 文档,但我无法真正理解 GPS 标签的含义。

最佳答案

如果不需要外部库,可以使用 TFileStream 和字节数组来完成此操作。我在一个项目中这样做是为了获取“拍照日期”,GPS 经纬度坐标只是 EXIF header 中的另一个字段。我这里没有代码,但方法很简单:一旦您有 JPEG 文件的 TFileStream:

  • 读取前 2 个字节,检查它实际上是 $FF $D8(只是为了确保它是有效的 JPEG)
  • 读取接下来的2个字节,检查是否为$FF $E1
  • 如果是,读取 4 个字节并查看是否为“Exif”($45 $78 $69 $66)
  • 接下来是 $00 $00 和一个 8 字节 TIFF header ,其中包含 endianness 等一般信息,后面是您需要处理并获取您需要的 EXIF 标记,我快速了解了搜索并找到一个列表:http://www.exiv2.org/tags.html

由于可以安全地假设 EXIF 数据位于 JPEG 文件的前 KB 中,因此您可以在字节数组(或 TMemoryStream)中读取这么多数据并在那里处理数据,这应该比单独的小读取性能更好一个 TFileStream。

关于file - 使用Delphi读取Exif GPS信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18622152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com