Запросы метаданных встроенных форматов изображений
В этом разделе представлен обзор запросов на языке метаданных для чтения и записи метаданных, поддерживаемых изображениями GIF, PNG, TIFF и JPEG. Он включает метаданные, относящиеся к каждому формату изображения, а также метаданные, поддерживаемые несколькими форматами.
В этом разделе содержатся следующие подразделы.
- Предварительные условия
- Выражение политики метаданных фотографий
- Метаданные формата файла
- Независимые метаданные формата файла
- Связанные темы
Предварительные требования
Чтобы понять эту статью, необходимо ознакомиться с системой метаданных компонента обработки образов Windows (WIC), как описано в разделе Общие сведения о метаданных WIC. Вы также должны быть знакомы с языком запросов, используемым для чтения и записи метаданных, как описано в статье Общие сведения о языке запросов метаданных.
Выражение политики метаданных фотографий
Помимо поддержки языка запросов метаданных, WIC также принимает канонические имена свойств из системы свойств Windows. WIC поддерживает подмножество пространства имен свойств Windows, относящееся к форматам изображений, как описано в разделе Политики метаданных фотографий. Свойство Windows, используемое в качестве запроса метаданных WIC, называется выражением политики метаданных фотографий.
Например, выражение политики метаданных фотографии для флага ориентации EXIF:
Как правило, выражения политики рекомендуется использовать вместо собственных запросов метаданных для общих элементов метаданных изображений, которые охватываются пространством имен свойства Windows. Язык запросов метаданных лучше всего подходит для случаев, когда требуется низкоуровневый доступ к определенным элементам метаданных изображений, а также для пользовательских или расширенных элементов метаданных, которые не поддерживаются системой свойств Windows. Дополнительные сведения см. в разделе Выражения политики метаданных фотографий.
Метаданные формата файла
В следующих разделах содержатся таблицы, в которых перечислены доступные запросы метаданных для каждого типа файла изображения. Каждая таблица содержит следующие столбцы:
- Путь — путь запроса, используемый для получения элемента метаданных.
- Name — имя элемента метаданных.
- Type — тип элемента метаданных, полученного из пути запроса. Метаданные, полученные 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, где * = от 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, где * = от 0 до N | Расширение приложения | VT_UNKNOWN — средство чтения или записи запросов |
/appext/Application | VT_UI1 | VT_VECTOR | |
/appext/Data | VT_UI1 | VT_VECTOR |
Метаданные кадра
В следующей таблице приведены доступные пути запросов метаданных, которые можно использовать для доступа к метаданным GIF на уровне кадра.
Путь | Имя | Тип |
---|---|---|
/grctlext | Расширение графического элемента управления | VT_UNKNOWN — средство чтения и записи запросов |
/grctlext/Disposal | 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, где * = от 0 до N | Фрагмент текста | VT_UNKNOWN — средство чтения и записи запросов tEXt |
/tEXt/{str=*} where * = идентификация ключевое слово для текста | VT_LPSTR | |
/Gama | Gama Chunk | VT_UNKNOWN — средство чтения и записи запросов gAMA |
/gAMA/ImageGamma | VT_UI4 | |
/iTXt или /[*]iTXt, где * = от 0 до N | Блок IText | VT_UNKNOWN — средство чтения и записи запросов iTXt |
/iTXt/Keyword | VT_LPSTR | |
/iTXt/CompressionFlag | VT_UI1 | |
/iTXt/LanguageTag | LPSTR | |
/iTXt/TranslatedKeyword | LPWSTR | |
/iTXt/TextEntry | LPWSTR | |
/cHRM | Блок управления персоналом | 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 Чак | VT_UNKNOWN — средство чтения и записи запросов sRGB |
/sRGB/RenderingIntent | VT_UI1 | |
/Время | Блок времени | VT_UNKNOWN — средство чтения и записи запросов tIME |
/tIME/Year | VT_UI2 | |
/tIME/Month | VT_UI1 | |
/tIME/Day | VT_UI1 | |
/tIME/Hour | 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 | 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 по идентификатору | Переменная |
/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} | Interop | VT_UNKNOWN — средство чтения или записи запросов |
/ifd/iptc или /ifd/{ushort=33723} | IPTC | VT_UNKNOWN — средство чтения или записи запросов |
/ifd/iptc/{str=*}, где * = 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 |
/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} | ThumbnailData | VT_BLOB |
/app1 | Приложение 1 | 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 | |
/Яркости | Luminance | VT_UNKNOWN — модуль чтения и записи запросов Luminance |
/luminance/TableEntry | VT_UI1 | VT_VECTOR | |
/Цветности | Chrominance | VT_UNKNOWN — средство чтения и записи запросов Chrominance |
/chrominance/TableEntry | VT_UI1 | VT_VECTOR | |
/Xmp | XMP | VT_UNKNOWN — средство чтения и записи запросов XMP |
Независимые метаданные формата файла
В следующих разделах содержатся сведения о форматах метаданных, поддерживаемых несколькими форматами изображений. Каждая таблица содержит следующие столбцы:
- Относительный путь — путь запроса, используемый для получения элемента метаданных относительно блока метаданных.
- Name — имя элемента метаданных.
- Type — тип элемента метаданных, полученного из пути запроса. Метаданные, полученные WIC , возвращаются в виде PROPVARIANT, который сообщает тип данных с помощью перечисления VARTYPE.
Примечание
Таблицы здесь предоставляют только относительный путь для доступа к элементу метаданных в определенном формате метаданных. Чтобы получить полный запрос метаданных, добавьте этот относительный путь к запросу блока метаданных для конкретного формата метаданных.
Например, чтобы получить доступ к флагу Orientation в 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} | PhotometricInterpretation | 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} | Дата и время | 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} | Дополнительные примеры | 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". "RATIONAL" состоит из числителя и знаменателя, оба из которых являются 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} | ExposureProgram | VT_UI2 |
/{ushort=34852} | Спектральная чувствительность | VT_LPSTR |
/{ushort=34855} | Фотографическая чувствительность | VT_VECTOR | VT_UI2 |
/{ushort=34856} | OECF | VT_BLOB |
/{ushort=34864} | SensitivityType | VT_UI2 |
/{ushort=34865} | StandardOutputSensitivity | VT_UI4 |
/{ushort=34866} | RecommendedExposureIndex | 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} | Значение яркости | 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} | ExposureIndex | VT_UI8 |
/{ushort=41495} | SensingMethod | VT_UI2 |
/{ushort=41728} | FileSource | VT_BLOB |
/{ushort=41729} | Тип сцены | 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". "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-адрес заключен в выражение данных, позволяющее использовать символы, такие как косая черта (/). Наконец, "Rating" — это фактическое имя элемента метаданных, определенное схемой XMP, и оно отделяется от идентификатора схемы двоеточием (:).
В этом примере WIC предоставляет понятный идентификатор для схемы XMP, которую можно использовать вместо полного URL-адреса. Таким образом, предыдущий запрос можно переписать следующим образом:
- /xmp/xmp:Rating
WIC предоставляет понятные префиксы схемы для следующих часто используемых схем:
Если нет понятного префикса схемы для конкретной схемы, например, если изображение содержит метаданные XMP, использующий пользовательскую стороннюю схему, запрос метаданных должен использовать полный URL-адрес схемы.
Связанные темы
-
Основные понятия
-
Практическое руководство. Повторное кодирование изображения JPEG с помощью метаданных