将 GPSIFD 指针添加到没有 EXIF header
Adding GPSIFD Pointer to an EXIF header without one
我有特殊问题。我想使用大量带有预定义 EXIF 的 JPEG 图片并添加 GPS 字段。
问题是这些图片还没有 Gps IFD。 EXIF 通常在图像数据 (SOI) 之前,因此对 EXIF 的任何修改都会导致磁盘中图像的完全重写。我不想修改千兆字节的图片,所以我添加了 GPS 字段。
第一个问题:我有哪些选择?
第二个问题:我可以用 GPSInfoIFDPointer
覆盖 IFD0 中无用的标签到 SOI 之后的偏移量,然后我只需要附加 GPSIF 和数据,这是 FAT 支持的操作?这会破坏大多数解析器吗?
只要生成的 Exif 数据仍然适合 APP1 JPEG 段,并且它仍然是有效的 Exif,您就可以实现您的目标。但是,如果您有来自各种来源的图像,您可能会发现您无法始终使修改后的数据适合,因为可能没有足够的标签可以删除以创建一个全新的 space 所需的IFD.
不幸的是,您不能在 APP1 段内创建指向 APP1 段外部的指针。一些读者可能会处理这个,但它会非常不规则并且可能会导致问题。然而,这不是我见过的东西。
如果您可以从现有的 IFD 中删除一些标签,那么您可能有足够的 space 将您的 GPS IFD 写入您创建的净空。
您也可以在 APP1 段中留下一些死的 space。也就是说,您不必使新的 Exif 数据 完全 适合 space,它只是不能比以前的数据大。
一些 JPEG 用户可能允许您将 APP1 片段移动到图像片段 之后 (您可以从其末尾扩展文件而无需 re-writing/moving 任何内容)但是我还没有尝试过,所以无法评论它对你的效果。
我有特殊问题。我想使用大量带有预定义 EXIF 的 JPEG 图片并添加 GPS 字段。
问题是这些图片还没有 Gps IFD。 EXIF 通常在图像数据 (SOI) 之前,因此对 EXIF 的任何修改都会导致磁盘中图像的完全重写。我不想修改千兆字节的图片,所以我添加了 GPS 字段。
第一个问题:我有哪些选择?
第二个问题:我可以用 GPSInfoIFDPointer
覆盖 IFD0 中无用的标签到 SOI 之后的偏移量,然后我只需要附加 GPSIF 和数据,这是 FAT 支持的操作?这会破坏大多数解析器吗?
只要生成的 Exif 数据仍然适合 APP1 JPEG 段,并且它仍然是有效的 Exif,您就可以实现您的目标。但是,如果您有来自各种来源的图像,您可能会发现您无法始终使修改后的数据适合,因为可能没有足够的标签可以删除以创建一个全新的 space 所需的IFD.
不幸的是,您不能在 APP1 段内创建指向 APP1 段外部的指针。一些读者可能会处理这个,但它会非常不规则并且可能会导致问题。然而,这不是我见过的东西。
如果您可以从现有的 IFD 中删除一些标签,那么您可能有足够的 space 将您的 GPS IFD 写入您创建的净空。
您也可以在 APP1 段中留下一些死的 space。也就是说,您不必使新的 Exif 数据 完全 适合 space,它只是不能比以前的数据大。
一些 JPEG 用户可能允许您将 APP1 片段移动到图像片段 之后 (您可以从其末尾扩展文件而无需 re-writing/moving 任何内容)但是我还没有尝试过,所以无法评论它对你的效果。