原生影像格式元數據查詢
本主題提供 元數據查詢語言的概觀, 查詢,以讀取和寫入 GIF、PNG、TIFF 和 JPEG 影像支援的元數據。其中包含每個影像格式特有的元數據,以及多種格式支援的元數據。
本主題包含下列各節。
先決條件
若要瞭解本主題,您應該熟悉 Windows 映像處理元件 (WIC) 元數據系統,如 WIC 元數據概觀中所述。 您也應該熟悉用來讀取和寫入元數據的查詢語言,如 元數據查詢語言概觀中所述。
相片元數據原則表達式
除了支援元數據查詢語言之外,WIC 也接受來自 Windows 屬性系統的正式屬性名稱。 WIC 支援與影像格式相關的 Windows 屬性命名空間子集,如 相片元數據原則中所述。 做為 WIC 元數據查詢的 Windows 屬性稱為相片元數據原則表示式。
例如,EXIF 方向旗標的相片元數據原則表達式為:
一般而言,建議針對 Windows 屬性命名空間所涵蓋之常見影像元數據專案的原生元數據查詢,使用原則表達式。 元數據查詢語言最適合需要特定影像元數據專案的低層級存取,或適用於Windows屬性系統不支援的自定義或進階元數據專案。 如需詳細資訊,請參閱 相片元數據原則表達式。
檔格式特定元數據
下列各節包含列出每個影像檔類型可用元數據查詢的數據表。 每個資料表都有下列資料列:
- 路徑 - 用來擷取元數據專案的查詢路徑。
- 名稱 - 元數據項目的名稱。
- 類型 - 從查詢路徑擷取的元數據項目類型。 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 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 | 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=*} 其中 * = 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=*} 其中 * = 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/TableEntry | VT_UI1 |VT_VECTOR | |
/色度 | 色度 | VT_UNKNOWN - Chrominance 查詢讀取器/寫入器 |
/chrominance/TableEntry | VT_UI1 |VT_VECTOR | |
/xmp | XMP | VT_UNKNOWN - XMP 查詢讀取器/寫入器 |
檔格式獨立元數據
下列各節包含多個影像格式所支援的元數據格式相關信息。 每個資料表都有下列資料列:
- 相對路徑 - 用來擷取元數據專案的查詢路徑,相對於元數據區塊。
- 名稱 - 元數據項目的名稱。
- 類型 - 從查詢路徑擷取的元數據項目類型。 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 位無符號整數。 分子包含在高 32 位中,而分母則包含在低 32 位中。 在 WIC中,這些會分別以VT_UI8或VT_I8類型的形式傳回:實際值會分別儲存為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} | Specsitivity | 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} | 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」。 “RATIONAL” 是由分子和分母所組成,兩者都是 32 位無符號整數。 分子包含在高 32 位中,而分母則包含在低 32 位中。 在 WIC中,這些會以具有VT_UI8類型的 PROPVARIANT 傳回。 實際值會儲存為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。
相關主題