原生影像格式中繼資料查詢

本主題提供 中繼資料查詢語言查詢 的概觀,以讀取和寫入 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 提供下列常用架構的易記架構前置詞:

架構前置詞 架構 URL 連結至標準
Rdf https://www.w3.org/1999/02/22-rdf-syntax-ns# https://www.w3.org/TR/REC-rdf-syntax/
dc https://purl.org/dc/elements/1.1/ https://www.adobe.com/devnet/xmp.html
xmp https://ns.adobe.com/xap/1.0/ https://www.adobe.com/devnet/xmp.html
xmpidq https://ns.adobe.com/xmp/Identifier/qual/1.0/ https://www.adobe.com/devnet/xmp.html
xmpRights https://ns.adobe.com/xap/1.0/rights/ https://www.adobe.com/devnet/xmp.html
xmpMM https://ns.adobe.com/xap/1.0/mm/ https://www.adobe.com/devnet/xmp.html
xmpBJ https://ns.adobe.com/xap/1.0/bj/ https://www.adobe.com/devnet/xmp.html
xmpTPg https://ns.adobe.com/xap/1.0/t/pg/ https://www.adobe.com/devnet/xmp.html
pdf https://ns.adobe.com/pdf/1.3/ https://www.adobe.com/devnet/xmp.html
Photoshop https://ns.adobe.com/photoshop/1.0/ https://www.adobe.com/devnet/xmp.html
tiff https://ns.adobe.com/tiff/1.0/ https://www.adobe.com/devnet/xmp.html
Exif https://ns.adobe.com/exif/1.0/ https://www.adobe.com/devnet/xmp.html
stDim https://ns.adobe.com/xap/1.0/sType/Dimensions# https://www.adobe.com/devnet/xmp.html
xapGImg https://ns.adobe.com/xap/1.0/g/img/ https://www.adobe.com/devnet/xmp.html
stEvt https://ns.adobe.com/xap/1.0/sType/ResourceEvent# https://www.adobe.com/devnet/xmp.html
stRef https://ns.adobe.com/xap/1.0/sType/ResourceRef# https://www.adobe.com/devnet/xmp.html
stVer https://ns.adobe.com/xap/1.0/sType/Version# https://www.adobe.com/devnet/xmp.html
stJob https://ns.adobe.com/xap/1.0/sType/Job# https://www.adobe.com/devnet/xmp.html
輔助 https://ns.adobe.com/exif/1.0/aux/ https://www.adobe.com/devnet/xmp.html
Crs https://ns.adobe.com/camera-raw-settings/1.0/ https://www.adobe.com/devnet/xmp.html
xmpDM https://ns.adobe.com/xmp/1.0/DynamicMedia/ https://www.adobe.com/devnet/xmp.html
Iptc4xmpCore https://iptc.org/std/Iptc4xmpCore/1.0/xmlns/ https://www.iptc.org/cms/site/index.html?channel=CH0099
MicrosoftPhoto https://ns.microsoft.com/photo/1.0/ 人員標記概觀
MP https://ns.microsoft.com/photo/1.2/ 人員標記概觀
MPRI https://ns.microsoft.com/photo/1.2/t/RegionInfo\# 人員標記概觀
MPReg https://ns.microsoft.com/photo/1.2/t/Region\# 人員標記概觀

 

如果特定架構沒有易記的架構前置詞,例如,如果映射包含使用自訂協力廠商架構的 XMP 中繼資料,中繼資料查詢應該使用完整的架構 URL。

概念

Windows 映像元件概觀

WIC 中繼資料概觀

中繼資料查詢語言概觀

中繼資料擴充性概觀

作法:使用中繼資料重新編碼 JPEG 影像