среда, 19 сентября 2018 г.

WICView: вытягиваем полные метаданные из фоток и картинок


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


Предыстория 


Поставил я себе как-то Cardboard Camera от Google. Эта такая штука, которая снимает стереопанорамы для VR-очков обычной камерой телефона. Умненькие креативненькие гуглеры чтобы оправдать своё звание хорошо постарались и исхитрились не просто делать два снимка с разными углами обзора за один проход камеры, но и сохранять их в один JPEG-файл, причём в полном соответствии со всеми спецификациями и не сломав совместимость. То есть, открыв стереопанораму на компьютере с мономонитором, мы увидим самую обычную панораму. Второй снимок запрятан в метаданных фотографии, причём не просто в EXIF, а в Adobe XMP, и не обычном, а расширенном - ExtendedXMP. И тут пришло понимание, как много интересного всё это время проходило мимо меня незамеченным...

Windows Imaging Component, WIC


Простых утилит, которые бы показали мне неизведанный доселе мир метаинформации в максимально подробном виде, я не нашёл, но выяснил, что в Windows есть мощный механизм - windows imaging component (описание API), а в комплекте с delphi - неплохие заголовочные файлы под него. Механизм используется, например, проводником для извлечения размеров, даты снимка и даже готовых уменьшенных копий фотографии, которые приличные камеры тоже сохраняют в метатеги. Это позволяет строить эскизы почти мгновенно и не считывать весь файл. В ходе экспериментов выяснилось, что WIC понимает почти все графические форматы и все типы метаданных - EXIF, IFD, XMP кроме - сюрприз - ExtendedXMP.


О программе


Программа покажет вам всю вспомогательную информацию, хранящуюся в метаданных (EXIF, IFD, XMP, iCCP, cHRM) графических файлов (JPEG, PNG, GIF, TIFF и т. д.), которую только можно вытащить средствами операционной системы. К известным тегам предлагается текстовое название и описание их значения. Данные можно копировать, бинарные данные можно извлекать и сохранять (например, мини-превьюшки). Изменять данные нельзя, всё read-only. Есть поиск-фильтр по именам тегов и значениям.


Текстовые описания известных тегов хранятся в словаре description.txt, откуда WICView при запуске их считывает. Для наполнения словаря использовались открытые источники, большая часть с сайта awaresystems.be. Можно добавлять свои записи - каждая строка состоит из названия тега, каким вы его видите в окне программы, затем пробела и описания. Название можно скопировать из окна правой кнопкой.  Разрешены пустые строки и комментарии, отделённые символом #. Файл сохраняйте в ANSI.


In english


У меня было описание на английском, оставлю его тут, чтоб не выбрасывать.

WICView (Windows Imaging API client) - Exif/XMP metadata viewer. An auxiliary tool. Handles images and shows available metadata tree, obtained through the standard system interface - Windows Imaging Component (WIC). Shows human-readable descriptions for EXIF tags (editable, stored in .txt) Read-only. Does not modify data. Made to see what WIC can do for you. Not so much, as it turned out... At this moment it looks like a lack of extended XMP support (or I'm doing it wrong :)


Скачать / download 


Программа: https://yadi.sk/d/XpfdunakTjpudg
Исходники: https://yadi.sk/d/QggTeFB7TGYgCA

keywords: jpeg, jpg, jpe, tiff, gif, jfif, gps, ifd, ushort, xmp, app0, app1, app12, app13, photoshop, adobe, not a WICExplorer, IWICMetadataQueryReader, яШяа, Delphi XE.

Обсуждение: