aspose.info
RU

EXIF

Обновлено

.EXIF вариант №

EXIF расшифровывается как «Exchangeable Image File Format», определение, впервые данное Японской ассоциацией производителей камер (JCIA) в 1985 году. Стандарт управляется Japan Electronics и Ассоциация индустрии информационных технологий (JEITA) на сегодняшний день. EXIF — это стандарт спецификаций форматов изображения и звука, которые в основном используются цифровыми камерами и сканерами.

Стандарт EXIF включает информацию о тегах и метаданных с файлом изображения. Метаданные могут содержать такую информацию, как модель камеры, выдержка, дата и время, диафрагма, производитель, время экспозиции, разрешение X, разрешение Y и т. д. Обычно данные EXIF скрыты по умолчанию. Чтобы просмотреть данные EXIF, необходимо выбрать свойства просмотра в приложении для просмотра изображений. Метаданные Exif могут также включать эскизы вместе с техническими данными и данными основного изображения в одном файле изображения.

История и версии

  • В октябре 1995 года JEIDA выпустила версию 1. В этой версии JEIDA определила структуру, состоящую из формата данных изображения и информации об атрибутах, а также основных тегов.
  • Ноябрь 1997 г., версия 1.1 была представлена с большинством тегов из версии 1, но также были добавлены положения для дополнительной информации об атрибутах и операции формата.
  • Июнь 1998 г., версия 2 с цветовым пространством sRGB, сжатыми эскизами и аудиофайлами.
  • Декабрь 1998 г., версия 2.1 с расширенным хранилищем и информацией об атрибутах.
  • Февраль 2002 г., версия 2.2, улучшенная версия 2.1 с добавлением финишной обработки печати.
  • Сентябрь 2003 г., версия 2.21 с дополнительным цветовым пространством, известным как Adobe RGB.

Формат файла EXIF

EXIF использует следующие форматы файлов с добавлением определенных метаданных.

  1. JPEG - дискретное косинусное преобразование (ДКП) для сжатых файлов изображений.
  2. TIFF версии 6.0 (RGB или YCbCr) для несжатых файлов изображений.
  3. RIFF WAV для аудиофайлов (Linear PCM или ITU-T G.711 μ-Law PCM для несжатых аудиоданных и IMA-ADPCM для сжатых аудиоданных).

Маркер, используемый EXIF

Маркер 0xFFE0~~0xFFEF — это «маркер приложения», используемый пользовательским приложением. Например, старые цифровые камеры используют JFIF (формат обмена файлами JPEG) для хранения изображений. JFIF использует маркер APP0 (0xFFE0) для вставки данных конфигурации цифровой камеры и эскиза изображения. Кроме того, EXIF также использует маркер приложения для вставки данных, но EXIF использует маркер APP1 (0xFFE1), чтобы избежать конфликта с форматом JFIF. Все форматы файлов EXIF начинаются с этого формата.

Маркер SOIМаркер APP1Данные APP1Другой маркер
FFD8FFE1SSSS 457869660000 TTTT……FFXX SSSS DDDD……

Он начинается с маркера SOI (0xFFD8), поэтому это файл JPEG. Затем сразу следует маркер APP1. Все данные EXIF хранятся в этой области данных APP1. Часть «SSSS» в верхней таблице означает размер области данных APP1 (область данных EXIF). Обратите внимание, что размер “SSSS” включает также размер самого дескриптора. После «SSSS» начинаются данные APP1. Первая часть - это специальные данные для идентификации EXIF или нет, используется символ ASCII “EXIF” и 2 байта 0x00. После области маркера APP1 следуют другие маркеры JPEG.

Структура данных Exif

Примерная структура данных EXIF (APP1) показана ниже. Как обсуждалось выше, данные EXIF начинаются с символа ASCII «EXIF» и 2 байтов 0x00, затем следуют данные EXIF. EXIF использует формат TIFF для хранения данных.

FFE1Маркер APP1
SSSSДанные APP1
45786966 0000Заголовок Exif
49492A00 08000000Заголовок TIFF
XXXX. . . .IFD0 (основное изображение)
LLLLLLLLСсылка на IFD1
XXXX. . . .Область данных IFD0
XXXX. . . .Exif SubIFD
00000000Конец ссылки
XXXX. . . .Область данных Exif SubIFD
XXXX. . . .IFD1(миниатюра)
00000000Конец ссылки
XXXX. . . .Область данных IFD1
FFD8XXXX. . . XXXXFFD9Эскиз изображения

Заголовок TIFF

8-байтовый заголовок файла TIFF содержит следующую информацию:

Bytes 0-1: Порядок байтов, используемый в файле. Допустимые значения: «II» (4949.H) «MM» (4D4D.H).

В формате «II» порядок байтов всегда от младшего значащего байта до самого старшего байта как для 16-битных, так и для 32-битных целых чисел. Это называется порядком байтов с прямым порядком байтов. В формате «MM» порядок байтов всегда от старшего к младшему как для 16-битных, так и для 32-битных целых чисел. Это называется порядком байтов с прямым порядком байтов.

Bytes 2-3: Произвольное, но тщательно выбранное число (42), которое дополнительно идентифицирует файл как файл TIFF. Порядок байтов зависит от значения байтов 0-1.

Bytes 4-7: Смещение (в байтах) первого IFD. Каталог может находиться в любом месте файла после заголовка, но должен начинаться на границе слова. В частности, каталог файлов изображений может следовать за данными изображения, которые он описывает. Читатели должны следовать указателям, куда бы они ни вели. Термин «байтовое смещение» всегда используется в этом документе для обозначения положения относительно начала файла TIFF. Первый байт файла имеет смещение 0.

Каталог файлов изображений

IFD содержит информацию об изображении, а также указатели на фактические данные изображения. Он состоит из 2-байтового подсчета количества записей каталога (т. е. количества полей), за которым следует последовательность 12-байтовых записей полей. , за которым следует 4-байтовое смещение следующего IFD (или 0, если его нет). В файле TIFF должен быть как минимум 1 IFD, и каждый IFD должен иметь хотя бы одну запись.

Запись в ИФД

Каждая 12-байтовая запись IFD имеет следующий формат.

БайтыОписание
0-1Тег, идентифицирующий поле
2-3Тип поля
4-7Счетчик указанного типа
8-11Смещение значения, смещение в файле (в байтах) значения поля. Предполагается, что значение начинается на границе слова; соответствующее смещение значения, таким образом, будет четным числом. Это смещение файла может указывать в любом месте файла, даже после того, как данные изображения

Поле TIFF представляет собой логический объект, состоящий из тега TIFF и его значения. Эта логическая концепция реализуется как запись IFD, плюс фактическое значение, если оно не помещается в часть значения/смещения, последние 4 байта записи IFD. Термины «поле TIFF» и «запись IFD» взаимозаменяемы в большинстве контекстов.

Уменьшенное изображение

Формат Exif содержит миниатюру изображения (кроме Ricoh RDC-300Z). Обычно он располагается рядом с IFD1. Есть 3 формата миниатюр; Формат JPEG (JPEG использует YCbCr), формат RGB TIFF, формат YCbCr TIFF.

Миниатюра формата JPEG

Если значение тега Compression(0x0103) в IFD1 равно «6», формат эскиза — JPEG. Большая часть изображений Exif использует формат JPEG для миниатюр. В этом случае вы можете получить смещение миниатюры по тегу JpegIFOffset(0x0201) в IFD1, размер миниатюры по тегу JpegIFByteCount(0x0202). Формат данных — обычный формат JPEG, начинается с 0xFFD8 и заканчивается на 0xFFD9. Кажется, что формат JPEG и размер 160x120 пикселей являются рекомендуемым форматом эскизов для Exif2.1 или более поздних версий.

Миниатюра формата TIFF

Если значение тега Compression (0x0103) в IFD1 равно «1», формат эскиза не является сжатым (называется изображением TIFF). Начальной точкой данных эскиза является тег StripOffset(0x0111), размер эскиза представляет собой сумму тега StripByteCounts(0x0117).

Использованная литература

См. также