Интерпретация формата JPEG/Exif/TIFF (2): Подробное объяснение сохранения метаданных изображения и EXIF.
Интерпретация формата JPEG/Exif/TIFF (2): Подробное объяснение сохранения метаданных изображения и EXIF.

Метаданные изображения (Метаданные)

Метаданные, также известные как промежуточные данные и ретрансляционные данные, представляют собой данные, описывающие данные (данные о данных), в основном информацию, описывающую атрибуты данных (свойство). Используется для поддержки таких функций, как указание места хранения, исторических данных, поиск ресурсов, запись файлов и т. д.

Метаданные изображения (Метаданные) — это теги, встроенные в файлы изображений. Больше похоже на атрибуты файлов, но со многими типами. Для цифровых изображений в настоящее время распространенные исследовательские данные включают EXIF, Существует три типа IPTC и XMP:

  • EXIF: обычно автоматически добавляется цифровыми камерами при съемке фотографий, например, модель камеры, объектив, экспозиция, размер изображения и другая информация.
  • IPTF: например, название изображения, ключевые слова, описание, автор, авторские права и другая информация. В основном это данные, записанные людьми с помощью программного обеспечения на более позднем этапе.
  • XMP: XMP на самом деле является стандартом хранения и управления метаданными. Exif, IPTC или другие данные могут храниться в файлах изображений в унифицированном формате XMP. Но при конвертации JPG в другие форматы, такие как png, pdf и т. д., поскольку эти форматы не поддерживают формат Exif, информация Exif будет утеряна. Чтобы решить эту проблему, Adobe представила метод использования XMP для управления метаданными, то есть метаданные в изображении, такие как Exif, IPTC и т. д., включаются в библиотеку XMP и управляются XMP.

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

Например, JPG и TIF ​​— это EXIF, а PNG.

В Windows просмотр метаданных изображений предназначен для файлов изображений. 【свойство】——>【Подробности】 Эта страница выглядит так, как показано ниже:

Что такое Эксиф?

ExifдляExchangeable Image File(сменные файлы изображений)аббревиатура,да специально настроен для фотографий, сделанных цифровыми фотоаппаратами.,Используется для записи различной информации при съемке изображений: информация об изображении (производитель,резолюция и др.),Запись съемки камеры (ISO,баланс белого,Насыщенность,резкость и др.),миниатюра(миниатюраширина,высота и др.),GPS (долгота на момент съемки),широта,высота) и т. д.,Поместите эту информацию в файл изображения головы в соответствии со стандартом файлов JPEG.

Основными типами информации, записываемой Exif, являются:

  • Информация о съемке
  • Фототехника (корпус, объектив, вспышка и т. д.)
  • Параметры съемки (выдержка, значение диафрагмы F, чувствительность ISO, фокусное расстояние, режим замера экспозиции и т. д.)
  • Параметры обработки изображения (резкость, контрастность, насыщенность, баланс белого и т. д.)
  • Описание изображения и информация об авторских правах
  • Данные о местоположении GPS
  • миниатюра

Exif изначально был разработан Японской ассоциацией развития электронной промышленности (JEIDA). --Japan Electronic Industry Development Association) Он был сформулирован в 1996 году (1.0), а в 1998 году на провинциальном уровне вышла версия 2.1, в которой добавлена ​​поддержка аудиофайлов. Последняя версия на данный момент — 2.21. версия. Стандарт проектирования файлов камер (DCF), разрабатываемый Международной организацией по стандартизации (ISO). -- Design role for Camera File правила проектирования файловой системы системы/камеры) могут быть основаны на Exif2.1.

Почти все новые цифровые камеры в настоящее время используют формат файлов Exif для хранения изображений.

О взаимосвязи EXIF ​​и JPEG

Файлы Exif на самом деле представляют собой тип файла JPEG и соответствуют стандарту JPEG.,Так что присоединяйтесь EXIF информация не влияет JPEG Просмотр файлов. К информации заголовка файла добавляется только содержимое информации о съемке и индексное изображение.

Таким образом, вы можете использовать любое программное обеспечение для работы с изображениями, поддерживающее формат JPEG, для просмотра или изменения файлов Exif, но вы можете не увидеть информацию Exif при его открытии. После изменения информация Exif может быть потеряна.

Basically, Exif file format is the same as JPEG file format. Exif inserts some of image/digicam information data and thumbnail image to JPEG in conformity to JPEG specification.Therefore you can view Exif format image files by JPEG compliant Internet browser/Picture viewer/Photo retouch software etc. as a usual JPEG image files.

Проще говоря, информация EXIF ​​— это ряд информации, собранной цифровой камерой в процессе съемки, а затем помещенной в заголовок привычного файла JPEG/TIFF. Другими словами, информация EXIF ​​встраивается в JPEG. Формат файла изображения /TIFF. Набор параметров съемки, в основном включая диафрагму, выдержку, ISO, дату и время, а также другую информацию, связанную с условиями съемки в данный момент, маркой камеры, цветовым кодированием, звуком, записанным во время съемки, и глобальную информацию. система позиционирования (GPS) и другая информация.

Описание формата файла EXIF

Exif можно добавлять к файлам JPEG, TIFF, RIFF, CR2, NEF, XMP и другим файлам — спецификация PNG не включает встроенный EXIF.

Как проанализировать информацию Exif в файле изображения и перехватить блок данных Exif в файле изображения?

Информация Exif начинается с 0xFFE1, а последние два байта указывают длину информации Exif. Таким образом, максимальный размер информации Exif составляет 64 КБ, а внутренний формат TIFF — формат файла изображения с тегами — изначально был разработан для производителей настольных сканеров для достижения общего формата файла отсканированного изображения, формата JPEG, в середине 1980-х годов. быть встроены в другие типы форматов файлов, например в форматы файлов типа TIFF).

Every JPEG file starts from binary value '0xFFD8', ends by binary value '0xFFD9'. There are several binary 0xFFXX data in JPEG data, they are called as "Marker", and it means the period of JPEG information data. 0xFFD8 means SOI(Start of image), 0xFFD9 means EOI(End of image). These two special Markers have no data following, the other Markers have data with it. Basic format of Marker is below.

Многие картинки не имеют суффиксов, но картинки все же можно идентифицировать, опираясь на описания?

Как идентифицировать файлы JEPG

На самом деле, это очень просто: определить, что такое первые 3 байта. Если обнаружено, что оно начинается с FF D8 FF, то это считается изображением в формате JEPG.

Файлы JPG состоят из сегментов данных. Количество и длина сегментов не определены. Если файл JPEG содержит достаточно информации, его можно открыть.

Формат JPEG и теги

Компоненты формата изображения JPEG: SOI (заголовок файла) + APP0 (идентификационная информация изображения) + DQT (определить таблицу квантования) + SOF0 (основная информация об изображении) + DHT (определить таблицу Хаффмана) + DRI (определить интервал перезапуска) + SOS (Начало строка сканирования) + EOI (конец файла)

Откройте файл JPG в шестнадцатеричном формате, и вы найдете

JPEG Есть некоторые в файлеДанные в форме 0xFF** называются «Маркерами».,это значит JPEG Информационный сегмент данных. Например 0xFFD8 представлять SOI(Start of image), 0xFFD9 представлять EOI(End of image)。

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

JPEG format and Marker

SOI Marker

Marker XX size=SSSS

Marker YY size=TTTT

SOS Marker size=UUUU

Image stream

EOI Marker

FFD8

FFXX

SSSS

DDDD......

FFYY

TTTT

DDDD......

FFDA

UUUU

DDDD....

I I I I....

FFD9

Теги между 0xFFE0~0xFFEF называются «тегами приложений». Они не обязательно должны существовать при декодировании изображений JPEG. Они используются в пользовательских приложениях. Например, старые цифровые камеры Olympus/canon/casio/agfa используют JFIF (обмен файлами JPEG). Формат) для хранения изображений JFIF использует тег APP0 (0xFFE0) для вставки данных конфигурации цифровой камеры и миниатюр.

Exif также использует теги приложения для вставки данных, но Exif использует тег APP1 (0xFFE1), чтобы избежать конфликтов с форматом JFIF. С него начинается каждый формат файла Exif, например.

SOI-тег

Размер отметки XX=SSSS

Отметьте размер YY=TTTT

Размер тега SOS = УУУУ

поток данных изображения

знак ВЗ

FFD8

FFXXlo0p

SSSS

DDDD......

FFYY

TTTT

DDDD......

FFDA

UUUU

DDDD....

I I I I....

FFD9

Exif также использует теги приложения для вставки данных, но Exif использует тег APP1 (0xFFE1), чтобы избежать конфликтов с форматом JFIF. С него начинается каждый формат файла Exif, например.;

Marker used by Exif

0xFF+Marker Number(1 byte)+Data size(2 bytes)+Data(n bytes)

SOI Marker

APP1 Marker

APP1 Data

Other Marker

FFD8

FFE1

SSSS 457869660000 TTTT......

FFXX SSSS DDDD......

Файл изображения начинается с тега SOI (0xFFD8), поэтому это файл JPEG. Сразу за ним следует тег APP1. И все его данные Exif хранятся в поле данных APP1. Часть «SSSS» выше представляет APP1. поле данных (область данных Exif). Обратите внимание, что размер «SSSS» здесь включает размер самого дескриптора.

После «SSSS» идут данные APP1. Первая часть — это специальные данные, которые используются для определения того, является ли это Exif. Его значение представляет собой объединенную строку символа ASCII «Exif» и двух байтов 0x00.

После поля тега APP1 следуют другие теги JPEG.

анализ данных exif

Если изображение представляет собой шестнадцатеричные данные, то:

FF D8  FF E0 00 10 4A 46 49 46 00 01 02 01 00 60 00 60   00 00  FF E1 08 32 45 78 69 66 00 00 49 49 10 60 00 60   20 00 …… FFD9  

Затем FF D8 — это бит флага SOI, FF E0 — это начальный бит файла exif, а следующие четыре бита — это длина информации маркера exif. Кажется, проблем нет, если данные такой длины разбирать в данные TIFFdata, а exif разбирать непосредственно в строку. 

FF D8

    FF E0 00 10 4A 46 49 46 00 01 02 01 00 60 00 60   00 00        mark0,00 10 = 16 бит

FF E1 08 32 45 78 69 66 00 00 49 49 10 60 00 60   20 00 …… mark1,00 10 = 2098 бит

    …… 

   Image stream

FFD9

структура данных маркера exif

Структура данных Exif (APP1) примерно следующий. Так обстоит дело с порядком байтов Intel, и он содержит JPEG Отформатированный Миниатюра. Как описано выше, Exif Данные начинаются с символов ASCII. "Exif" и 2 байта 0x00, Это позади Exif-данные. Exif использовать TIFF формат для хранения данных. Если вы хотите получить более подробную информацию о TIFF, Пожалуйста, обратитесь к «Спецификация TIFF6.0 (TIFF6.0 specification)".

FFE1

Тег приложения1

SSSS

Данные приложения1

Данные приложения1размер

45786966 0000

Exif-заголовок

49492A00 08000000

заголовок TIFF

XXXX. . . .

IFD0 (основное изображение)

Оглавление

LLLLLLLL

Подключиться к IFD1

XXXX. . . .

Поле данных IFD0

XXXX. . . .

Exif детский IFD

Оглавление

00000000

Соединение завершено

XXXX. . . .

Exif детский IFDизполе данных

XXXX. . . .

Interoperability IFD

Directory

00000000

Соединение завершено

XXXX. . . .

Поля данных IFD взаимодействия

XXXX. . . .

Makernote IFD

Directory

00000000

Соединение завершено

XXXX. . . .

Поля данных Makernote IFD

XXXX. . . .

IFD1 (миниатюрное изображение)

Оглавление

00000000

Соединение завершено

XXXX. . . .

Поле данных IFD1

FFD8XXXX. . . XXXXFFD9

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

Exif – TIFF

TIFF–формат файла изображения,Содержит элемент данных изображения data. Благодаря своей простоте и гибкости,Souse очень широк,Прочтите эту статью специально《Интерпретация формата JPEG/Exif/TIFF (3): TIFF

Нам просто нужно идентифицировать его голову и расшифровать сообщение. Эта информация имеет таблицу кодирования, кодируется согласно заголовку, а затем декодирует содержимое внутри.

Ниже приводится описание формата файла, данное на официальном сайте. Вы можете.

  • Теги, используемые IFD0 (основное изображение), основная информация о файлах изображений, включая дату, направление и баланс белого.
  • Теги, используемые Exif SubIFD, съемка — это настройки параметров камеры и соответствующая базовая информация, такая как время экспозиции, IOS, яркость.
  • Теги, используемые IFD1 (миниатюрное изображение), этап хранения изображения и отображение соответствующей информации,
  • Разные теги, описание файла и дополнительная информация, такая как название, исполнитель, информация о местоположении GPS и т. д.

Tags used by IFD0 (main image)

Tag No.

Tag Name

Format

CompoNo

Desc.

0x010e

ImageDescription

ascii string

Describes image

0x010f

Make

ascii string

Shows manufacturer of digicam

0x0110

Model

ascii string

Shows model number of digicam

0x0112

Orientation

unsigned short

1

The orientation of the camera relative to the scene, when the image      was captured. The start point of stored data is, '1' means upper left, '3'      lower right, '6' upper right, '8' lower left, '9' undefined.

0x011a

XResolution

unsigned rational

1

Display/Print resolution of image. Large number of digicam      uses 1/72inch, but it has no mean because personal computer doesn't use      this value to display/print out.

0x011b

YResolution

unsigned rational

1

0x0128

ResolutionUnit

unsigned short

1

Unit of XResolution(0x011a)/YResolution(0x011b). '1' means no-unit, '2' means inch, '3' means      centimeter.

0x0131

Software

ascii string

Shows firmware(internal software of digicam) version number.

0x0132

DateTime

ascii string

20

Date/Time of image was last modified. Data format is "YYYY:MM:DD      HH:MM:SS"+0x00, total 20bytes. In usual, it has the same value of      DateTimeOriginal(0x9003)

0x013e

WhitePoint

unsigned rational

2

Defines chromaticity of white point of the image. If the image uses      CIE Standard Illumination D65(known as international standard of      'daylight'), the values are '3127/10000,3290/10000'.

0x013f

PrimaryChromaticities

unsigned rational

6

Defines chromaticity of the primaries of the image. If the image uses      CCIR Recommendation 709 primearies, values are      '640/1000,330/1000,300/1000,600/1000,150/1000,0/1000'.

0x0211

YCbCrCoefficients

unsigned rational

3

When image format is YCbCr, this value shows a constant to translate      it to RGB format. In usual, values are '0.299/0.587/0.114'.

0x0213

YCbCrPositioning

unsigned short

1

When image format is YCbCr and uses 'Subsampling'(cropping of chroma      data, all the digicam do that), defines the chroma sample point of      subsampling pixel array. '1' means the center of pixel array, '2' means      the datum point.

0x0214

ReferenceBlackWhite

unsigned rational

6

Shows reference value of black point/white point. In case of YCbCr      format, first 2 show black/white of Y, next 2 are Cb, last 2 are Cr. In      case of RGB format, first 2 show black/white of R, next 2 are G, last 2      are B.

0x8298

Copyright

ascii string

Shows copyright information

0x8769

ExifOffset

unsigned long

1

Offset to Exif Sub IFD

Больше можно посмотреть:https://www.media.mit.edu/pia/Research/deepview/exif.html

Эта статьяда《Интерпретация формата JPEG/Exif/TIFF (5): идентификатор тега маркера exif

Ссылки:

Подробное описание файла изображения с информацией Exif blog.sina.com.cn/s/blog_651251e60102uz3d.html#AboutExif

Метаданные информации Exif изображения https://www.jianshu.com/p/a6d67df60e7e

Информация о ротации файлов изображений JPEG и EXIF  https://blog.csdn.net/yulimin/article/details/102827865

https://www.media.mit.edu/pia/Research/deepview/exif.html

https://baike.baidu.com/item/Exif/422825?fr=aladdin

Считайте атрибут Exif изображения JPG (1) - Введение в информацию Exif https://blog.csdn.net/fioletfly/article/details/53605959

Чтение атрибутов Exif изображений JPG (2) — реализация кода C https://blog.csdn.net/fioletfly/article/details/54094940

Считайте атрибут Exif изображения JPG (3) - ExifсвойствочитатьGPSинформационный код(C/C++выполнить)https://blog.csdn.net/fioletfly/article/details/54133422

Реализация программы C для добавления информации Exif к изображениям jpg. https://blog.csdn.net/psy6653/article/details/79658144

Добавляем EXIF ​​в JPEG https://blog.csdn.net/weixin_43549602/article/details/84654965

Подробное объяснение формата изображения jpeg https://blog.csdn.net/yun_hen/article/details/78135122

Алгоритм сжатия — JPEG2000. Принципы кодирования и декодирования https://blog.csdn.net/ytang_/article/details/76571635

Подробное объяснение PNG, JPEG, BMP и других форматов изображений https://www.jianshu.com/p/f5557c0e689e

использовать HTTP2и изображения Progressive JPEG для более быстрой загрузки изображений http

ПерепечаткаЭтот сайтстатья《Интерпретация формата JPEG/Exif/TIFF (2): Подробное объяснение сохранения метаданных изображения и EXIF.》, Пожалуйста, укажите источник:https://www.zhoulujun.cn/html/theory/multimedia/CG-CV-IP/8397.html

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose