原生影像格式中繼資料查詢
本主題提供 中繼資料查詢語言查詢 的概觀,以讀取和寫入 GIF、PNG、TIFF 和 JPEG 影像支援的中繼資料。其中包含每個影像格式特有的中繼資料,以及多種格式支援的中繼資料。
本主題包含下列各節。
必要條件
若要瞭解本主題,您應該熟悉 WIC (WIC) 中繼資料系統的 Windows 映像元件,如 WIC 中繼資料概觀中所述。 您也應該熟悉用來讀取和寫入中繼資料的查詢語言,如 中繼資料查詢語言概觀中所述。
相片中繼資料原則運算式
除了支援中繼資料查詢語言之外, WIC 也接受 來自 Windows 屬性系統的標準屬性名稱。 WIC 支援與影像格式相關的 Windows 屬性命名空間子集,如 相片中繼資料原則中所述。 用來作為 WIC 中繼資料查詢的 Windows 屬性稱為相片中繼資料原則運算式。
例如,EXIF 方向旗標的相片中繼資料原則運算式為:
一般而言,針對 Windows 屬性命名空間所涵蓋的一般影像中繼資料專案,建議針對原生中繼資料查詢使用原則運算式。 中繼資料查詢語言最適合需要特定影像中繼資料專案的低階存取,或適用于 Windows 屬性系統不支援的自訂或進階中繼資料專案。 如需詳細資訊,請參閱 相片中繼資料原則運算式。
檔案格式特定中繼資料
下列各節包含的資料表會列出每個影像檔案類型的可用中繼資料查詢。 每個資料表都有下列資料行:
- 路徑 - 用來擷取中繼資料專案的查詢路徑。
- 名稱 - 中繼資料專案的名稱。
- Type - 從查詢路徑擷取的中繼資料專案類型。 WIC所擷取的中繼資料會以 PROPVARIANT 的形式傳回,其會使用 VARTYPE 列舉.on 報告資料類型。
WIC 中繼資料 API 會使用查詢路徑來存取影像的內嵌中繼資料。 下列範例程式碼示範如何使用 IWICMetadataQueryReader 查詢 JPEG 的 IFD 中繼資料區塊。
// 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 中繼資料的完整清單以及更詳細的資訊,請參閱 W3C 網站上的 GIF 標準 。
全域中繼資料
下表提供可用來存取全域 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 中繼資料的完整清單以及更詳細的資訊,請參閱 W3C 網站上的 PNG 標準 。
框架中繼資料
下表提供可用來存取框架層級 PNG 中繼資料的可用中繼資料查詢路徑。
路徑 | 名稱 | 類型 |
---|---|---|
/tEXt 或 /[*]tEXt,其中 * = 0 到 N | 文字區塊 | VT_UNKNOWN - tEXt 查詢讀取器/寫入器 |
/tEXt/{str=*} ,其中 * = 識別文字的關鍵字 | VT_LPSTR | |
/gAMA | Gama 區塊 | 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 | 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/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=*} 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 查詢讀取器/寫入器 |
/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 | 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=*} where * = IRB Identifier (請參閱 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/TableEntry | VT_UI1 |VT_VECTOR | |
/色度 | Chrominance | VT_UNKNOWN - Chrominance 查詢讀取器/寫入器 |
/chrominance/TableEntry | VT_UI1 |VT_VECTOR | |
/xmp | XMP | VT_UNKNOWN - XMP 查詢讀取器/寫入器 |
檔案格式獨立中繼資料
下列各節包含多個影像格式所支援的元資料格式相關資訊。 每個資料表都有下列資料行:
- 相對路徑 - 用來擷取中繼資料專案的查詢路徑,相對於中繼資料區塊。
- 名稱 - 中繼資料專案的名稱。
- Type - 從查詢路徑擷取的中繼資料專案類型。 WIC所擷取的中繼資料會以 PROPVARIANT 的形式傳回,其會使用 VARTYPE 列舉報告資料類型。
注意
此處的資料表只會提供相對路徑,以存取特定元資料格式內的中繼資料專案。 若要取得完整中繼資料查詢,請將這個相對路徑附加至特定元資料格式的中繼資料區塊查詢。
例如,若要存取 JPEG 檔案中的 Orientation 旗標,請使用下列運算式:
- /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 中繼資料專案會傳回類型為 VT_UI2 的 PROPVARIANT。 不過,根據 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} | 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 中繼資料是以 TIFF 標準中所定義的 IFD 資料結構為基礎,並提供其他屬性,例如用來建立影像的裝置和相片屬性的相關資訊。 它會使用 ushort 類型的標記來識別每個中繼資料專案。 JPEG、TIFF 和 JPEG-XR 支援 EXIF 中繼資料。 協力廠商格式,例如某些相機原始格式,也可能支援 EXIF 中繼資料。
下表提供相對中繼資料查詢路徑,以存取一些常用的 EXIF 中繼資料專案。 EXIF 資料結構允許協力廠商擴充性,而且此資料表不是詳盡的清單;如需詳細資訊,請參閱 EXIF 標準。
注意
許多 EXIF 中繼資料專案都會在 EXIF 標準中定義為類型 「RATIONAL」 或 「SRATIONAL」。 「RATIONAL」 是由分子和分母所組成,兩者都是 32 位不帶正負號的整數。 Numerator 包含在高 32 位,而分母則包含在低 32 位中。 在 WIC中,這些會分別以VT_UI8或VT_I8類型傳回為 PROPVARIANT;實際值會分別儲存為ULARGE_INTEGER或LARGE_INTEGER。 若要存取 numerator 和分母,請閱讀ULARGE_INTEGER或LARGE_INTEGER值的 HighPart 和 LowPart 成員。
注意
下表中的特定中繼資料專案需要額外的解譯或資訊才能正確使用。 例如, ColorSpace 中繼資料專案會傳回類型為 VT_UI2 的 PROPVARIANT。 不過,根據 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} | 擷塞納文Sensitivity | VT_LPSTR |
/{ushort=34855} | PhotographicSensitivity | VT_VECTOR |VT_UI2 |
/{ushort=34856} | ][!] | VT_BLOB |
/{ushort=34864} | SensitivityType | VT_UI2 |
/{ushort=34865} | StandardOutputSensitivity | VT_UI4 |
/{ushort=34866} | RecommendedExposureIndex | VT_UI4 |
/{ushort=34867} | ISOSpeed | VT_UI4 |
/{ushort=34868} | ISOSpeedLatitudeyy | 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} | FlashEnergy | 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} | 一個感應器 | 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} | 白平衡 | 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 位不帶正負號的整數。 Numerator 包含在高 32 位,而分母則包含在低 32 位中。 在 WIC中,這些屬性會以 PROPVARIANT 的形式傳回,其類型為 VT_UI8。 實際值會儲存為ULARGE_INTEGER。 若要存取 numerator 和分母,請閱讀ULARGE_INTEGER值的 HighPart 和 LowPart 成員。
注意
此處資料表中的特定中繼資料專案需要額外的解譯或資訊才能正確使用。 例如,GPSLatitudeRef 中繼資料專案會傳回類型為 VT_LPSTR 的 PROPVARIANT。 根據 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 中繼資料封包內所有命名空間的中繼資料名稱。
例如,若要取得 JPEG 映射中 XMP 架構所定義的 Rating 屬性,請使用下列查詢:
- /xmp/{wstr=https://ns.adobe.com/xap/1.0/}:Rating
第一個部分 「/xmp」 會擷取影像的 XMP 中繼資料讀取器/寫入器。 "https://ns.adobe.com/xap/1.0/"是 XMP 架構的 URL,如 XMP 標準中所定義。 URL 會以日期運算式括住,以允許使用正斜線 (/) 等字元。 最後,「評等」是 XMP 架構所定義的實際中繼資料專案名稱,並以冒號分隔 (:) 的架構識別碼。
在此範例中,WIC 提供 XMP 架構的易記識別碼,可用來取代完整的 URL。 因此,先前的查詢可以重寫為:
- /xmp/xmp:Rating
WIC 提供下列常用架構的易記架構前置詞:
如果特定架構沒有易記的架構前置詞,例如,如果映射包含使用自訂協力廠商架構的 XMP 中繼資料,中繼資料查詢應該使用完整的架構 URL。
相關主題