ネイティブ イメージ形式のメタデータ クエリ
このトピックでは、GIF、PNG、TIFF、JPEG 画像でサポートされるメタデータの読み取りと書き込みに関するメタデータ クエリ言語 クエリの概要について説明します。これには、各イメージ形式に固有のメタデータと、複数の形式でサポートされているメタデータが含まれます。
このトピックは、次のセクションで構成されています。
必須コンポーネント
このトピックを理解するには、「 WIC メタデータの概要」の説明に従って、Windows イメージング コンポーネント (WIC) メタデータ システムについて理解している必要があります。 また、「メタデータ クエリ言語の概要」で説明されているように、メタデータの読み取りと書き込みに使用される クエリ言語についても理解している必要があります。
写真メタデータ ポリシー式
WIC は、メタデータ クエリ言語のサポートに加えて、Windows プロパティ システムからの正規のプロパティ名も受け入れます。 WIC では、「 写真メタデータ ポリシー」で説明されているように、画像形式に関連する Windows プロパティ名前空間のサブセットがサポートされています。 WIC メタデータ クエリとして使用される Windows プロパティは、写真メタデータ ポリシー式と呼ばれます。
たとえば、EXIF オリエンテーション フラグの写真メタデータ ポリシー式は次のとおりです。
一般に、ポリシー式は、Windows プロパティ名前空間の対象となる一般的なイメージ メタデータ項目のネイティブ メタデータ クエリよりも推奨されます。 メタデータ クエリ言語は、特定のイメージ メタデータ項目への低レベルのアクセスが必要な場合や、Windows プロパティ システムでサポートされていないカスタムまたは高度なメタデータ項目に最適です。 詳細については、「 Photo Metadata Policy Expressions」を参照してください。
ファイル形式固有のメタデータ
次のセクションには、イメージ ファイルの種類ごとに使用可能なメタデータ クエリの一覧を示すテーブルが含まれています。 各テーブルには、次の列があります。
- Path - メタデータ 項目の取得に使用されるクエリ パス。
- Name - メタデータ 項目の名前。
- 型 - クエリ パスから取得したメタデータ項目の型。 WIC によって取得されたメタデータは PROPVARIANT の形式で返されます。この形式では、VARTYPE 列挙を使用してデータ型が報告されます。
クエリ パスは、イメージの埋め込みメタデータにアクセスするために 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) イメージ形式では、グローバル レベルとフレーム レベルのメタデータの両方がサポートされています。 次の 2 つのセクションでは、GIF のグローバル およびフレーム レベルのメタデータに使用できるメタデータ クエリ パスを提供します。
Note
GIF メタデータの完全な一覧と詳細については、W3C Web サイトの GIF 標準 を参照してください。
グローバル メタデータ
次の表に、グローバル GIF メタデータへのアクセスに使用できるメタデータ クエリ パスを示します。
Path | 名前 | 型 |
---|---|---|
/commentext または /[*]commentext where * = 0 to 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 メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
Path | 名前 | 型 |
---|---|---|
/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) イメージ形式では、フレーム レベルのメタデータがサポートされています。
Note
PNG メタデータの完全な一覧と詳細な情報については、W3C Web サイトの PNG 標準 を参照してください。
フレーム メタデータ
次の表に、フレーム レベルの PNG メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
Path | 名前 | 型 |
---|---|---|
/tEXt または /[*]tEXt (* = 0 から N) | テキスト チャンク | VT_UNKNOWN - tEXt クエリ リーダー/ライター |
/tEXt/{str=*} where * = テキストのキーワード (keyword)を識別する | VT_LPSTR | |
/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 | 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) イメージ形式では、フレーム レベルのメタデータがサポートされます。
Note
TIFF メタデータの完全な一覧と詳細については、 TIFF 標準を参照してください。
フレーム メタデータ
次の表に、フレーム レベルの TIFF メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
Path | 名前 | 型 |
---|---|---|
/Ifd | 0 IFD | VT_UNKNOWN - クエリ リーダー/ライター |
/ifd/{ushort=*} where * = 0 から 65535 | ID 別の 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 キーワード (keyword) | IPTC エントリ | 変数 |
/ifd/irb/8bimiptc/iptc | Iptc | VT_UNKNOWN - クエリ リーダー/ライター |
/ifd/irb/8bimiptc/iptc/{str=*} | IPTC エントリ | 変数 |
JPEG メタデータ
JPEG イメージ形式では、フレーム レベルのメタデータがサポートされます。
Note
JPEG メタデータの完全な一覧と詳細については、 EXIF JPEG 標準を参照してください。
フレーム メタデータ
次の表に、フレーム レベルの JPEG メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
Path | 名前 | 型 |
---|---|---|
/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 クエリ リーダー/ライター |
ファイル形式に依存しないメタデータ
次のセクションでは、複数の画像形式でサポートされているメタデータ形式に関する情報を示します。 各テーブルには、次の列があります。
- 相対パス - メタデータ ブロックに対する相対メタデータ 項目の取得に使用されるクエリ パス。
- Name - メタデータ 項目の名前。
- 型 - クエリ パスから取得したメタデータ項目の型。 WIC によって取得されたメタデータは PROPVARIANT の形式で返されます。この形式では、VARTYPE 列挙を使用してデータ型が報告されます。
Note
ここでのテーブルは、特定のメタデータ形式内のメタデータ項目にアクセスするための相対パスのみを提供します。 完全修飾メタデータ クエリを取得するには、特定のメタデータ形式のメタデータ ブロック クエリにこの相対パスを追加します。
たとえば、JPEG ファイルの Orientation フラグにアクセスするには、次の式を使用します。
- /app1/ifd/{ushort=274}
TIFF ファイルで、次の式を使用します。
- /ifd/{ushort=274}
この例では、異なる画像形式で特定のメタデータ ブロックが異なる方法で格納される場合があるため、特定のメタデータ 項目にアクセスするための完全修飾メタデータ クエリは画像形式固有である可能性があることに注意してください。 各形式のテーブルを参照して、特定のメタデータ ブロックにアクセスするための適切なメタデータ クエリを見つけます。
IFD メタデータ
IFD (イメージ ファイル ディレクトリ) は、イメージ メタデータを含めることができる TIFF 標準で定義されているデータ構造です。 ushort 型のタグを使用して、各メタデータ項目を識別します。 JPEG、TIFF、JPEG-XR では、IFD メタデータがサポートされます。 一部のカメラ生形式のようなサード パーティの形式でも、IFD メタデータがサポートされる場合があります。
次の表は、一般的に使用される IFD メタデータ項目にアクセスするための相対メタデータ クエリ パスを示しています。 IFD データ構造を使用すると、サードパーティの機能拡張が可能になり、このテーブルは完全な一覧ではありません。 詳細については、TIFF 標準を参照してください。
Note
JPEG やその他の形式では IFD データ構造がサポートされていますが、定義されているメタデータ項目の一部が使用されない場合があります。 詳細については、各形式の標準を参照してください。
Note
この表の特定のメタデータ項目では、適切に使用するために追加の解釈または情報が必要です。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} | Make | VT_LPSTR |
/{ushort=272} | モデル | VT_LPSTR |
/{ushort=305} | ソフトウェア | VT_LPSTR |
/{ushort=315} | Artist | 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 標準を参照してください。
Note
EXIF メタデータ項目の多くは、EXIF 標準で型 "RATIONAL" または "SRATIONAL" として定義されています。 "RATIONAL" は分子と分母で構成され、どちらも 32 ビット符号なし整数です。 分子は上位 32 ビットに、分母は下位 32 ビットに含まれています。 WIC では、これらはそれぞれVT_UI8またはVT_I8の型を持つ PROPVARIANT として返されます。実際の値は、それぞれULARGE_INTEGERまたはLARGE_INTEGERとして格納されます。 分子と分母にアクセスするには、ULARGE_INTEGERまたはLARGE_INTEGER値の HighPart メンバーと LowPart メンバーを読み取ります。
Note
次の表の特定のメタデータ項目では、適切に使用するために追加の解釈または情報が必要です。 たとえば、 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} | SpectralSensitivity | VT_LPSTR |
/{ushort=34855} | PhotographicSensitivity | 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} | 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} | 光源 | 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} | Sharpness | 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 標準を参照してください。
Note
多くの GPS メタデータ項目は、EXIF 標準で型 "RATIONAL" として定義されています。 "RATIONAL" は分子と分母で構成され、どちらも 32 ビット符号なし整数です。 分子は上位 32 ビットに、分母は下位 32 ビットに含まれています。 WIC では、これらは VT_UI8 型の PROPVARIANT として返されます。 実際の値はULARGE_INTEGERとして格納されます。 分子と分母にアクセスするには、ULARGE_INTEGER値の HighPart メンバーと LowPart メンバーを読み取ります。
Note
この表の特定のメタデータ項目では、適切に使用するために追加の解釈または情報が必要です。 たとえば、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 標準で定義されている XMP スキーマの URL です。 URL はデータ式で囲まれており、スラッシュ (/) などの文字を使用できます。 最後に、"Rating" は XMP スキーマで定義された実際のメタデータ項目名であり、スキーマ識別子からコロン (:)で区切られます。
この例では、WIC は、完全な URL の代わりに使用できる XMP スキーマのフレンドリ識別子を提供します。 そのため、前のクエリは次のように書き換えることができます。
- /xmp/xmp:Rating
WIC では、次の一般的に使用されるスキーマのわかりやすいスキーマ プレフィックスが提供されます。
特定のスキーマに対するフレンドリ スキーマ プレフィックスがない場合 (たとえば、イメージにカスタムサード パーティ スキーマを使用する XMP メタデータが含まれている場合)、メタデータ クエリでは完全なスキーマ URL を使用する必要があります。
関連トピック
-
概念