Как получить EXIF-данные из моих файлов jpeg?

StackOverflow https://stackoverflow.com/questions/1564332

  •  21-09-2019
  •  | 
  •  

Вопрос

Мне нужно связать дату и имя с некоторыми файлами jpeg, которые я включаю в свой пакет или, возможно, загружаю со своего собственного сервера в папку Documents.Есть ли способ легко извлечь EXIF-данные?

Если это так, то я буду использовать EXIF для хранения этой информации.Если нет, то мне придется создать базу данных или плоский файл, который сопоставит мои дополнительные данные с файлом изображения.

Имейте в виду, что это не фотографии, сделанные iPhone и предоставленные через UIImagePicker или извне "песочницы".Это фотографии, которые я добавляю в приложение или загружаю в папку Docs самостоятельно.Важным моментом здесь является легкость:

Легче ли это сделать

  • прочитать EXIF-файл из моих файлов изображений
  • имейте другой файл, который отслеживает файл изображения и связанные с ним данные (может быть sqlite)

Спасибо!

Это было полезно?

Решение

Вы можете попробовать использовать iphone-инструментарий exif чтобы извлечь данные.Однако это лицензированный GPL, и если ваше приложение коммерческое, вам нужно будет договориться о лицензионном соглашении.Если это нежизнеспособно, то вы можете захотеть использовать маршрут внешних метаданных.

Другие советы

Фактический EXIF данные хранятся в виде небольшого РАЗМОЛВКА файл с TIFF-тегами, специфичными для EXIF, для информации, у которой нет домашнего адреса в спецификации TIFF.При размещении в файле JPEG (на самом деле это битовый поток JFIF) он сохраняется в маркере JPEG APP1, который ограничивает общий размер данных EXIF чуть менее 64 КБ.

Не должно быть так сложно найти маркер APP1, подтвердить, что он содержит данные EXIF, а затем проанализировать определенную коллекцию тегов EXIF с помощью довольно грубого кодирования.

Один из примеров, на который вы можете посмотреть, это дополнительный инструмент который делает именно это и написан на Perl с открытым исходным кодом на тех же условиях, что и сам Perl.

Если эти файлы предназначены исключительно для использования в вашем собственном приложении и не будут повторно использоваться пользователем в других инструментах, то потребуется некоторое время для сохранения ваших данных в формате XML / JSON в сегменте комментариев 0xFFFE.Как упоминалось ранее, вам не хватает всего 64 кб для игры.

Прелесть использования сегмента комментариев заключается в том, что он должен быть сохранен инструментами редактирования изображений, к нему быстрый доступ (поскольку вам не нужно просматривать блоки IFD, в которых хранятся EXIF-данные, вы просто читаете / записываете текстовую строку с заголовком типа / длины 4 байта) и доступен для чтения / записи человеком в графическом приложении.

Я бы предпочел не хранить связанные данные в БД, если это практически возможно, чтобы вы не рисковали тем, что БД рассинхронизируется с доступными файлами.

Я использую Дополнительный инструмент

встроен в мое приложение.Работает с удовольствием.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top