Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе представлен обзор языка запросов метаданных запросов для чтения и записи метаданных, поддерживаемых изображениями GIF, PNG, TIFF и JPEG. Он включает метаданные, относящиеся к каждому формату изображения, а также метаданные, поддерживаемые несколькими форматами.
В этом разделе содержатся следующие разделы.
- предварительных требований
- выражение политики метаданных фотографии
- определенных метаданных формата файла
- формат независимых метаданных
- связанные разделы
Необходимые условия
Чтобы понять эту тему, необходимо ознакомиться с системой метаданных компонента образов Windows (WIC), как описано в обзоре метаданных WIC. Вы также должны ознакомиться с языком запросов, используемым для чтения и записи метаданных, как описано в обзоре языка запросов метаданных.
Выражение политики метаданных фотографии
Помимо поддержки языка запросов метаданных, WIC также принимает канонические имена свойств из системы свойств Windows. WIC поддерживает подмножество пространства имен свойств Windows, которое относится к форматам изображений, как описано в политиках метаданных фотографий. Свойство Windows, используемое в качестве запроса метаданных WIC, называется выражением политики метаданных фотографии.
Например, выражение политики метаданных фотографии для флага ориентации EXIF:
Как правило, выражения политики рекомендуется использовать для собственных запросов метаданных для общих элементов метаданных изображения, охватываемых пространством имен свойств Windows. Язык запросов метаданных лучше всего подходит для случаев, когда требуется низкий уровень доступа к определенным элементам метаданных изображения, а также для пользовательских или расширенных элементов метаданных, которые не поддерживаются системой свойств Windows. Дополнительные сведения см. в выражениях политики метаданных фотографий.
Определенные метаданные формата файла
В следующих разделах содержатся таблицы, которые перечисляют доступные запросы метаданных для каждого типа файла изображения. Каждая таблица содержит следующие столбцы:
- пути — путь запроса, используемый для извлечения элемента метаданных.
- Имя — имя элемента метаданных.
- Тип — тип элемента метаданных, полученного из пути запроса. Метаданные, полученные WIC, возвращаются в виде PROPVARIANT, который сообщает тип данных с помощью перечисления VARTYPE.on.
Пути запроса используются API метаданных WIC для доступа к внедренным метаданным образа. В следующем примере кода показано использование IWICMetadataQueryReader для запроса блока метаданных IFD JPEG.
// Not shown: image decoding
IWICMetadataQueryReader *pQueryReader = NULL;
IWICMetadataQueryReader *pIFDReader = NULL;
// Get the query reader.
if (SUCCEEDED(hr))
{
hr = pFrameDecode->GetMetadataQueryReader(&pQueryReader);
}
if (SUCCEEDED(hr))
{
// Get the nested IFD reader.
hr = pQueryReader->GetMetadataByName(L"/app1/ifd", &value);
if (value.vt == VT_UNKNOWN)
{
hr = value.punkVal->QueryInterface(IID_IWICMetadataQueryReader, (void **)&pIFDReader);
}
PropVariantClear(&value); // Clear value for new query.
}
Метаданные GIF
Формат изображения в формате GIF поддерживает как глобальные, так и метаданные уровня кадров. В следующих двух разделах приведены пути запроса метаданных, доступные для глобальных и метаданных уровня кадров GIF.
Заметка
Полный список метаданных GIF вместе с более подробными сведениями см. в стандартной GIF на веб-сайте W3C.
Глобальные метаданные
В следующей таблице приведены доступные пути запроса метаданных, которые можно использовать для доступа к глобальным метаданным GIF.
Путь | Имя | Тип |
---|---|---|
/commentext или /[*]commentext where * = 0 до N | Расширение комментариев | VT_UNKNOWN — средство чтения запросов или записи |
/commentext/TextEntry | VT_LPSTR | |
/logscrdesc | Описание логического экрана | VT_UNKNOWN — средство чтения запросов или записи |
/logscrdesc/Signature | VT_UI1 | VT_VECTOR | |
/logscrdesc/Width | VT_UI2 | |
/logscrdesc/Height | VT_UI2 | |
/logscrdesc/GlobalColorTableFlag | VT_BOOL | |
/logscrdesc/ColorResolution | VT_UI1 | |
/logscrdesc/SortFlag | VT_BOOL | |
/logscrdesc/GlobalColorTableSize | VT_UI1 | |
/logscrdesc/BackgroundColorIndex | VT_UI1 | |
/logscrdesc/PixelAspectRatio | VT_UI1 | |
/appext или /[*]appext where * = 0 до N | Расширение приложения | VT_UNKNOWN — средство чтения запросов или записи |
/appext/Application | VT_UI1 | VT_VECTOR | |
/appext/Data | VT_UI1 | VT_VECTOR |
Метаданные кадра
В следующей таблице приведены доступные пути запроса метаданных, которые можно использовать для доступа к метаданным уровня кадров GIF.
Путь | Имя | Тип |
---|---|---|
/grctlext | Расширение графического элемента управления | VT_UNKNOWN — средство чтения запросов и записи |
/grctlext/Удаление | VT_UI1 | |
/grctlext/UserInputFlag | VT_BOOL | |
/grctlext/TransparencyFlag | VT_BOOL | |
/grctlext/Delay | VT_UI2 | |
/grctlext/TransparentColorIndex | VT_UI1 | |
/imgdesc | Дескриптор изображения | VT_UNKNOWN — средство чтения запросов и записи |
/imgdesc/left | VT_UI2 | |
/imgdesc/Top | VT_UI2 | |
/imgdesc/Width | VT_UI2 | |
/imgdesc/Height | VT_UI2 | |
/imgdesc/LocalColorTableFlag | VT_BOOL | |
/imgdesc/InterlaceFlag | VT_BOOL | |
/imgdesc/SortFlag | VT_BOOL | |
/imgdesc/LocalColorTableSize | VT_UI1 |
Метаданные PNG
Формат изображения переносимой сетевой графики (PNG) поддерживает метаданные уровня кадров.
Заметка
Полный список метаданных PNG вместе с более подробными сведениями см. в стандартной PNG на веб-сайте W3C.
Метаданные кадра
В следующей таблице приведены доступные пути запроса метаданных, которые можно использовать для доступа к метаданным на уровне кадров PNG.
Путь | Имя | Тип |
---|---|---|
/tEXt или /[*]tEXt where * = 0 до N | Фрагмент текста | VT_UNKNOWN — средство чтения запросов и записи запросов tEXt |
/tEXt/{str=*} where * = определение ключевого слова для текста | VT_LPSTR | |
/gAMA | Гама Chunk | VT_UNKNOWN — средство чтения и записи запросов gAMA |
/gAMA/ImageGamma | VT_UI4 | |
/iTXt или /[*]iTXt where * = 0 до N | Блок IText | VT_UNKNOWN — средство чтения и записи запросов iTXt |
/iTXt/Keyword | VT_LPSTR | |
/iTXt/CompressionFlag | VT_UI1 | |
/iTXt/LanguageTag | LPSTR | |
/iTXt/TranslatedKeyword | LPWSTR | |
/iTXt/TextEntry | LPWSTR | |
/cHRM | Блок HRM | VT_UNKNOWN — средство чтения запросов или записи запросов cHRM |
/cHRM/WhitePointX | VT_UI4 | |
/cHRM/WhitePointY | VT_UI4 | |
/cHRM/RedX | VT_UI4 | |
/cHRM/RedY | VT_UI4 | |
/cHRM/GreenX | VT_UI4 | |
/cHRM/GreenY | VT_UI4 | |
/cHRM/BlueX | VT_UI4 | |
/cHRM/BlueY | VT_UI4 | |
/sRGB | SRGB Chuck | VT_UNKNOWN — средство чтения запросов или записи запросов sRGB |
/sRGB/RenderingIntent | VT_UI1 | |
/Время | Блок времени | VT_UNKNOWN — средство чтения и записи запросов tIME |
/tIME/Year | VT_UI2 | |
/tIME/Месяц | VT_UI1 | |
/tIME/Day | VT_UI1 | |
/tIME/Час | VT_UI1 | |
/tIME/Minute | VT_UI1 | |
/tIME/Second | VT_UI1 | |
/bKGD | Фоновый блок | VT_UNKNOWN — средство чтения запросов или записи запросов bKGB |
/bKGD/BackgroundColor | VT_UI1, VT_UI2 или VT_UI2 | VT_VECTOR | |
/Исторических | HIST Chunk | VT_UNKNOWN — средство чтения запросов и записи запросов hIST |
/hIST/Частоты | VT_VECTOR | VT_UI2 | |
/iCCP | Блок iCCP | VT_UNKNOWN — средство чтения и записи запросов iCCP |
/iCCP/ProfileName | VT_LPSTR | |
/iCCP/ProfileData | VT_VECTOR | VT_UI1 |
Метаданные TIFF
Формат изображения с тегами (TIFF) поддерживает метаданные уровня кадров.
Заметка
Полный список метаданных TIFF вместе с более подробными сведениями см. в стандартнойTIFF.
Метаданные кадра
В следующей таблице приведены доступные пути запроса метаданных, которые можно использовать для доступа к метаданным TIFF уровня кадра.
Путь | Имя | Тип |
---|---|---|
/ifd | 0 IFD | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/{ushort=*}, где * = 0 до 65535 | ЕСЛИД-запись по идентификатору | Переменная |
/ifd/thumb или /ifd/{ushort=330} | Эскиз IFD | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/xmp или /ifd/{ushort=700} | XMP | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/exif или /ifd/{ushort=34665} | EXIF | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/gps или /ifd/{ushort=34853} | GPS | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/exif/interop или /ifd/exif/{ushort=40965} | Взаимодействие | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/iptc или /ifd/{ushort=33723} | IPTC | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/iptc/{str=*} where * = ключевое слово IPTC | Запись IPTC | Переменная |
/ifd/irb/8bimiptc/iptc | IPTC | VT_UNKNOWN — средство чтения запросов или записи |
/ifd/irb/8bimiptc/iptc/{str=*} | Запись IPTC | Переменная |
Метаданные JPEG
Формат изображения JPEG поддерживает метаданные уровня кадров.
Заметка
Полный список метаданных JPEG вместе с более подробными сведениями см. в стандарте EXIF JPEG.
Метаданные кадра
В следующей таблице приведены доступные пути запроса метаданных, которые можно использовать для доступа к метаданным JPEG уровня кадров.
Путь | Имя | Тип |
---|---|---|
/app0 | App0 | VT_UNKNOWN — средство чтения запросов и записи приложений |
/app0/{ushort=0} | Версия | VT_UI2 |
/app0/{ushort=1} | Единиц | VT_UI1 |
/app0/{ushort=2} | DpiX | VT_UI2 |
/app0/{ushort=3} | DpiY | VT_UI2 |
/app0/{ushort=4} | Xthumbnail | VT_UI1 |
/app0/{ushort=5} | Ythumbnail | VT_UI1 |
/app0/{ushort=6} | Эскиз данных | VT_BLOB |
/app1 | App1 | VT_UNKNOWN — средство чтения запросов app1 или запись |
/app1/ifd или /app1/{ushort=0} | 0 IFD | VT_UNKNOWN — средство чтения и записи запросов IFD |
/app1/ifd/exif или /app1/ifd/{ushort=34665} | EXIF IFD | VT_UNKNOWN — средство чтения и записи запросов EXIF |
/app1/thumb или /app1/{ushort=1} | Эскиз IFD | VT_UNKNOWN — средство чтения и записи запросов subIFD |
/app13 | App13 | VT_UNKNOWN — средство чтения запросов app13 или средство записи |
/app13/irb или /app13/{ushort=0} | IRB | VT_UNKNOWN — средство чтения запросов и записи запросов IRB |
/app13/irb/{ulonglong=*}, где * = идентификатор IRB (см. спецификацию IRB) | Запись IRB | VT_UNKNOWN — средство чтения и записи неизвестных запросов |
/app13/irb/{ulonglong=*}/{} | Содержимое записи IRB | VT_BLOB |
/app13/irb/8bimiptc или /app13/irb/{ulonglong=61857348781060} | 8BIMIPTC | VT_UNKNOWN — читатель запросов 8BIMIPTC или модуль записи |
/app13/irb/8bimiptc/iptc | IPTC | VT_UNKNOWN — средство чтения и записи запросов IPTC |
/app13/irb/8bimiptc/iptc/{str=*} | Запись IPTC | Переменная |
/app13/irb/8bimResInfo или /app13/irb/{ulonglong=61857348781037} | Сведения о разрешении 8BIM | VT_UNKNOWN — средство чтения запросов и записи |
/app13/irb/8bimResInfo/PString | VT_LPSTR | |
/app13/irb/8bimResInfo/HResolution | VT_UI4 | |
/app13/irb/8bimResInfo/VResolution | VT_UI4 | |
/app13/irb/8bimResInfo/WidthUnit | VT_UI2 | |
/app13/irb/8bimResInfo/HeightUnit | VT_UI2 | |
/app13/irb/8bimResInfo/HResolutionUnit | VT_UI2 | |
/app13/irb/8bimResInfo/VResolutionUnit | VT_UI2 | |
/com | Комментарий JPEG | VT_UNKNOWN — средство чтения запросов комментариев или записи |
/com/TextEntry | LPSTR | |
/яркость | Яркость | VT_UNKNOWN — средство чтения и записи запросов Luminance |
/luminance/TableEntry | VT_UI1 | VT_VECTOR | |
/цветность | Цветность | VT_UNKNOWN — средство чтения и записи запросов Chrominance |
/chrominance/TableEntry | VT_UI1 | VT_VECTOR | |
/xmp | XMP | VT_UNKNOWN — средство чтения запросов XMP или записи |
Независимые метаданные формата файлов
В следующих разделах содержатся сведения о форматах метаданных, поддерживаемых несколькими форматами изображений. Каждая таблица содержит следующие столбцы:
- относительный путь — путь запроса, используемый для извлечения элемента метаданных относительно блока метаданных.
- Имя — имя элемента метаданных.
- Тип — тип элемента метаданных, полученного из пути запроса. Метаданные, полученные WIC, возвращаются в виде PROPVARIANT, который сообщает тип данных с помощью перечисления VARTYPE.
Заметка
Таблицы здесь предоставляют только относительный путь для доступа к элементу метаданных в определенном формате метаданных. Чтобы получить полный запрос метаданных, добавьте этот относительный путь к запросу блока метаданных для определенного формата метаданных.
Например, чтобы получить доступ к флагу ориентации в JPEG-файле, используйте следующее выражение:
- /app1/ifd/{ushort=274}
В TIFF-файле используйте следующее выражение:
- /ifd/{ushort=274}
В этом примере обратите внимание, что различные форматы изображений могут хранить определенный блок метаданных по-разному, поэтому полный запрос метаданных для доступа к конкретному элементу метаданных может быть определенным форматом изображения. Просмотрите таблицу каждого формата, чтобы найти соответствующий запрос метаданных для доступа к конкретному блоку метаданных.
Метаданные IFD
IfD или Image File Directory — это структура данных, определенная в стандарте TIFF, которая может содержать метаданные изображения. Он определяет каждый элемент метаданных с помощью тега типа ushort. JPEG, TIFF и JPEG-XR поддерживают метаданные IFD. Сторонние форматы, такие как некоторые необработанные форматы камеры, также могут поддерживать метаданные IFD.
В таблице приведены относительные пути запроса метаданных для доступа к некоторым часто используемым элементам метаданных IFD. Структура данных IFD обеспечивает расширяемость сторонних производителей, и эта таблица не является исчерпывающим списком. Дополнительные сведения см. в стандарте TIFF.
Заметка
Хотя JPEG и другие форматы поддерживают структуру данных IFD, они могут не использовать все элементы метаданных, которые он определяет. Дополнительные сведения см. в стандарте каждого формата.
Заметка
Некоторые элементы метаданных в таблице требуют дополнительной интерпретации или информации для правильного использования, обратитесь к стандарту TIFF. Например, элемент метаданных PhotometricInterpretation возвращает proPVARIANT типа VT_UI2. Однако в соответствии со стандартом TIFF он интерпретируется как перечисление. Дополнительные сведения см. в стандарте TIFF.
Относительный путь | Имя | Тип |
---|---|---|
/{ushort=256} | ImageWidth | VT_UI2 или VT_UI4 |
/{ushort=257} | ImageLength | VT_UI2 или VT_UI4 |
/{ushort=258} | BitsPerSample | VT_UI2 |
/{ushort=259} | Сжатие | VT_UI2 |
/{ushort=262} | ФотометрикаInterpretation | VT_UI2 |
/{ushort=274} | Ориентация | VT_UI2 |
/{ushort=277} | SamplesPerPixel | VT_UI2 |
/{ushort=284} | PlanarConfiguration | VT_UI2 |
/{ushort=530} | YCbCrSubSampling | VT_VECTOR | VT_UI2 |
/{ushort=531} | YCbCrPositioning | VT_UI2 |
/{ushort=282} | XResolution | VT_UI8 |
/{ushort=283} | YResolution | VT_UI8 |
/{ushort=296} | ResolutionUnit | VT_UI2 |
/{ushort=306} | DateTime | VT_LPSTR |
/{ushort=270} | ImageDescription | VT_LPSTR |
/{ushort=271} | Делать | VT_LPSTR |
/{ushort=272} | Модель | VT_LPSTR |
/{ushort=305} | Программное обеспечение | VT_LPSTR |
/{ushort=315} | Художник | VT_LPSTR |
/{ushort=33432} | Авторское право | VT_LPSTR |
/{ushort=338} | ExtraSamples | VT_UI2 |
/{ushort=254} | NewSubfileType | VT_UI4 |
/{ushort=278} | RowsPerStrip | VT_UI2 или VT_UI4 |
/{ushort=279} | StripByteCounts | VT_VECTOR | VT_UI2 или VT_VECTOR | VT_UI4 |
/{ushort=273} | StripOffsets | VT_VECTOR | VT_UI2 или VT_VECTOR | VT_UI4 |
Метаданные EXIF
Метаданные EXIF определяются как часть спецификации EXIF JPEG. Метаданные EXIF основаны на структуре данных IFD, как определено в стандарте TIFF, и предоставляют дополнительные атрибуты, такие как сведения об устройствах и фотографических атрибутах, используемых для создания изображения. Он определяет каждый элемент метаданных с помощью тега типа ushort. JPEG, TIFF и JPEG-XR поддерживают метаданные EXIF. Сторонние форматы, такие как некоторые необработанные форматы камеры, также могут поддерживать метаданные EXIF.
В следующей таблице приведены относительные пути запроса метаданных для доступа к некоторым часто используемым элементам метаданных EXIF. Структура данных EXIF обеспечивает расширяемость сторонних производителей, и эта таблица не является исчерпывающим списком; Дополнительные сведения см. в стандарте EXIF.
Заметка
Многие элементы метаданных EXIF определяются в стандарте EXIF как тип "RATIONAL" или "SRATIONAL". "РАЦИОНАЛ" состоит из числового и знаменателя, оба из которых являются 32-разрядными целыми числами без знака. Числитель содержится в высоких 32 битах и знаменатель в низких 32 битах. В WICони возвращаются как PROPVARIANT с типом VT_UI8 или VT_I8 соответственно; фактическое значение хранится в виде ULARGE_INTEGER или LARGE_INTEGER соответственно. Чтобы получить доступ к числительу и знаменателю, ознакомьтесь с элементами HighPart и LowPart значения ULARGE_INTEGER или LARGE_INTEGER.
Заметка
Для правильного использования некоторых элементов метаданных в приведенной ниже таблице требуется дополнительная интерпретация или информация. Например, элемент метаданных ColorSpace возвращает proPVARIANT типа VT_UI2. Однако в соответствии со стандартом EXIF он интерпретируется как перечисление. Дополнительные сведения см. в стандарте EXIF.
Относительный путь | Имя | Тип |
---|---|---|
/{ushort=36864} | ExifVersion | VT_BLOB |
/{ushort=40960} | FlashpixVersion | VT_BLOB |
/{ushort=40961} | ColorSpace | VT_UI2 |
/{ushort=40962} | PixelXDimension | VT_UI2 или VT_UI4 |
/{ushort=40963} | PixelYDimension | VT_UI2 или VT_UI4 |
/{ushort=37500} | MakerNote | VT_BLOB |
/{ushort=37510} | UserComment | VT_LPWSTR |
/{ushort=36867} | DateTimeOriginal | VT_LPSTR |
/{ushort=36868} | DateTimeDigitized | VT_LPSTR |
/{ushort=42016} | ImageUniqueID | VT_LPSTR |
/{ushort=42032} | CameraOwnerName | VT_LPSTR |
/{ushort=42033} | BodySerialNumber | VT_LPSTR |
/{ushort=42034} | LensSpecification | VT_VECTOR | VT_UI8 |
/{ushort=42035} | LensMake | VT_LPSTR |
/{ushort=42036} | LensModel | VT_LPSTR |
/{ushort=42037} | LensSerialNumber | VT_LPSTR |
/{ushort=33434} | ExposureTime | VT_UI8 |
/{ushort=33437} | FNumber | VT_UI8 |
/{ushort=34850} | ЭкспозицияProgram | VT_UI2 |
/{ushort=34852} | SpectralSensitivity | VT_LPSTR |
/{ushort=34855} | Фотографияsensitivity | VT_VECTOR | VT_UI2 |
/{ushort=34856} | OECF | VT_BLOB |
/{ushort=34864} | КонфиденциальностьType | VT_UI2 |
/{ushort=34865} | StandardOutputSensitivity | VT_UI4 |
/{ushort=34866} | Recommended ExposureIndex | VT_UI4 |
/{ushort=34867} | ISOSpeed | VT_UI4 |
/{ushort=34868} | ISOSpeedLatitudeyyy | VT_UI4 |
/{ushort=34869} | ISOSpeedLatitudezzz | VT_UI4 |
/{ushort=37377} | ShutterSpeedValue | VT_I8 |
/{ushort=37378} | ApertureValue | VT_UI8 |
/{ushort=37379} | BrightnessValue | VT_I8 |
/{ushort=37380} | ExposureBiasValue | VT_I8 |
/{ushort=37381} | MaxApertureValue | VT_UI8 |
/{ushort=37382} | SubjectDistance | VT_UI8 |
/{ushort=37383} | MeteringMode | VT_UI2 |
/{ushort=37384} | LightSource | VT_UI2 |
/{ushort=37385} | Вспышка | VT_UI2 |
/{ushort=37386} | FocalLength | VT_UI8 |
/{ushort=37396} | SubjectArea | VT_VECTOR | VT_UI2 |
/{ushort=41483} | Flash Хейт | VT_UI8 |
/{ushort=41484} | SpatialFrequencyResponse | VT_BLOB |
/{ushort=41486} | FocalPlaneXResolution | VT_UI8 |
/{ushort=41487} | FocalPlaneYResolution | VT_UI8 |
/{ushort=41488} | FocalPlaneResolutionUnit | VT_UI2 |
/{ushort=41492} | SubjectLocation | VT_VECTOR | VT_UI2 |
/{ushort=41493} | ЭкспозицияIndex | VT_UI8 |
/{ushort=41495} | SensingMethod | VT_UI2 |
/{ushort=41728} | FileSource | VT_BLOB |
/{ushort=41729} | SceneType | VT_BLOB |
/{ushort=41730} | CFAPattern | VT_BLOB |
/{ushort=41985} | CustomRendered | VT_UI2 |
/{ushort=41986} | ExposureMode | VT_UI2 |
/{ushort=41987} | WhiteBalance | VT_UI2 |
/{ushort=41988} | DigitalZoomRatio | VT_UI8 |
/{ushort=41989} | FocalLengthIn35mmFilm | VT_UI2 |
/{ushort=41990} | SceneCaptureType | VT_UI2 |
/{ushort=41991} | GainControl | VT_UI8 |
/{ushort=41992} | Контраст | VT_UI2 |
/{ushort=41993} | Насыщение | VT_UI2 |
/{ushort=41994} | Резкость | VT_UI2 |
/{ushort=41995} | DeviceSettingDescription | VT_BLOB |
/{ushort=41996} | SubjectDistanceRange | VT_UI2 |
Метаданные GPS
Метаданные GPS содержат сведения о географическом расположении и определяются как часть спецификации EXIF JPEG. Он определяет каждый элемент метаданных с помощью тега типа ushort. JPEG, TIFF и JPEG-XR поддерживают метаданные GPS; Сторонние форматы, такие как некоторые необработанные форматы камеры, также могут поддерживать метаданные GPS.
В следующей таблице приведены относительные пути запроса метаданных для доступа к некоторым часто используемым элементам метаданных GPS. Эта таблица не является исчерпывающим списком; Дополнительные сведения см. в стандарте EXIF.
Заметка
Многие элементы метаданных GPS определяются в стандарте EXIF как тип "RATIONAL". "РАЦИОНАЛ" состоит из числового и знаменателя, оба из которых являются 32-разрядными целыми числами без знака. Числитель содержится в высоких 32 битах и знаменатель в низких 32 битах. В WICвозвращаются как PROPVARIANT с типом VT_UI8. Фактическое значение хранится как ULARGE_INTEGER. Чтобы получить доступ к числительу и знаменателю, считайте элементы HighPart и LowPart значения ULARGE_INTEGER.
Заметка
Для правильного использования некоторых элементов метаданных в таблице требуется дополнительная интерпретация или информация. Например, элемент метаданных GPSLatitudeRef возвращает PROPVARIANT типа VT_LPSTR. В соответствии со стандартом EXIF эта строка имеет значение "N" или "S", представляющее северную или южную широту. Дополнительные сведения см. в стандарте EXIF.
Относительный путь | Имя | Тип |
---|---|---|
{ushort=0} | GPSVersionID | VT_VECTOR | VT_UI1 |
{ushort=1} | GPSLatitudeRef | VT_LPSTR |
{ushort=2} | GPSLatitude | VT_VECTOR | VT_UI8 |
{ushort=3} | GPSLongitudeRef | VT_LPSTR |
{ushort=4} | GPSLongitude | {ushort=4} GPSLongitude VT_VECTOR | VT_UI8 |
{ushort=5} | GPSAltitudeRef | VT_UI1 |
{ushort=6} | GPSAltitude | VT_UI8 |
{ushort=7} | GPSTimeStamp | VT_VECTOR | VT_UI8 |
{ushort=8} | GPSSatellites | VT_LPSTR |
{ushort=9} | GPSStatus | VT_LPSTR |
{ushort=10} | GPSMeasureMode | VT_LPSTR |
{ushort=11} | GPSDOP | VT_UI8 |
{ushort=12} | GPSSpeedRef | VT_LPSTR |
{ushort=13} | GPSSpeed | VT_UI8 |
{ushort=14} | GPSTrackRef | VT_LPSTR |
{ushort=15} | GPSTrack | VT_UI8 |
Метаданные XMP
XMP — это стандарт расширяемых метаданных на основе XML. Элементы метаданных могут быть иерархическими и содержать сложные структуры данных. JPEG, TIFF и JPEG-XR поддерживают метаданные XMP. Сторонние форматы, такие как некоторые необработанные форматы камеры, также могут поддерживать метаданные XMP.
Стандарт XMP можно получить от: https://www.adobe.com/devnet/xmp.html.
XMP и позволяет сторонним сущностям публиковать собственные схемы или пространства имен, что позволяет им определять новые элементы метаданных без необходимости изменять стандарт XMP. Схема XMP однозначно определяется URL-адресом, но WIC предоставляет набор понятных идентификаторов для известных схем.
Элементы метаданных XMP определяются строковым именем, а также идентификатором схемы. В качестве рекомендации каждый запрос метаданных XMP должен указывать как схему, так и имя. Если идентификатор схемы отсутствует, JPEG попытается сопоставить имя метаданных во всех пространствах имен, присутствующих в пакете метаданных XMP.
Например, чтобы получить свойство Rating, определенное схемой XMP в изображении JPEG, используйте следующий запрос:
- /xmp/{wstr=https://ns.adobe.com/xap/1.0/}:Rating
Первая часть "/xmp" извлекает средство чтения метаданных XMP или записи для образа. "https://ns.adobe.com/xap/1.0/" — ЭТО URL-адрес схемы XMP, как определено в стандарте XMP. URL-адрес заключен в выражение данных, чтобы разрешить использование символов, таких как косая черта (/). Наконец, "Оценка" — это фактическое имя элемента метаданных, определенное схемой XMP, и оно отделяется от идентификатора схемы двоеточием (:)).
В этом примере WIC предоставляет понятный идентификатор схемы XMP, которую можно использовать вместо полного URL-адреса. Таким образом, предыдущий запрос можно переписать следующим образом:
- /xmp/xmp:Rating
WIC предоставляет понятные префиксы схемы для следующих часто используемых схем:
Если для конкретной схемы нет понятного префикса схемы, например если изображение содержит метаданные XMP с помощью пользовательской схемы сторонних производителей, запрос метаданных должен использовать полный URL-адрес схемы.
Связанные разделы
-
концептуальные
-
практическое руководство. Повторное кодирование изображения JPEG с помощью метаданных