代码之家  ›  专栏  ›  技术社区  ›  mahboudz

如何从我的JPEG中获取EXIF数据?

  •  0
  • mahboudz  · 技术社区  · 15 年前

    如果是这样,那么我将使用EXIF存储此信息。如果没有,那么我必须创建一个数据库或平面文件,将我的额外数据映射到图像文件。

    请记住,这些不是iPhone拍摄的照片,也不是通过UIImagePicker或从沙箱外部提供的照片。这些是我在应用程序中包含的照片,或是我自己下载到Docs文件夹中的照片。这里最重要的一点是轻松:

    • 有另一个文件跟踪 数据(可以是sqlite)

    3 回复  |  直到 15 年前
        1
  •  3
  •   Ramin    15 年前

    你可以尝试使用 iphone-exif toolkit 提取数据。但是,它是许可的GPL,如果你的应用是商业应用,你需要协商许可协议。如果这是不可行的,那么您可能希望使用外部元数据路径。

        2
  •  3
  •   RBerteig Keith Adler    15 年前

    实际的 EXIF TIFF 带有EXIF特定TIFF标记的文件,以获取TIFF规范中没有主页的信息。当放入JPEG文件(实际上是JFIF比特流)时,它存储在JPEG APP1标记中,该标记将EXIF数据的总大小限制为略小于64KB。

    定位APP1标记,确认它包含EXIF数据,然后用相当暴力的编码解析出一组特定的EXIF标记应该不会那么困难。

    exiftool 它就是这样做的,并且是用Perl和开源编写的,使用与Perl本身相同的术语。

        3
  •  1
  •   Simon    15 年前

    如果这些文件纯粹用于您自己的应用程序中,并且用户不会在其他工具中重复使用,那么在注释段0xFFFE中以XML/JSON的形式存储数据会有一些好处。如前所述,您只剩下64k可供使用。

    使用注释段的好处在于,它应该由图像编辑工具保存,访问速度快(因为您不需要遍历存储EXIF数据的IFD块,只需读/写一个具有4字节类型/长度标题的文本字符串),并且在图形应用程序中是人类可读/写的。

    如果可行的话,我会避免将相关数据存储在数据库中,这样您就不会冒数据库与可用文件不同步的风险。

        4
  •  0
  •   Joanna Carter    5 年前

    我用 ExifTool