ネイティブ イメージ形式のメタデータ クエリ
このトピックでは、GIF、PNG、TIFF、JPEG イメージでサポートされるメタデータを読み書きするための メタデータ クエリ言語 クエリの概要について説明します。これには、各イメージ形式に固有のメタデータと、複数の形式でサポートされているメタデータが含まれます。
このトピックには、次のセクションが含まれています。
- 前提条件の
- 写真メタデータ ポリシー式の を する
- ファイル形式固有のメタデータ
- ファイル形式に依存しないメタデータ
- 関連トピック
前提 条件
このトピックを理解するには、「WIC メタデータの概要」で説明されているように、Windows イメージング コンポーネント (WIC) メタデータ システムについて理解している必要があります。 メタデータの読み取りと書き込みに使用されるクエリ言語についても理解しておく必要があります。詳細については、「メタデータ クエリ言語の概要」参照してください。
写真メタデータ ポリシー式
WIC は、メタデータ クエリ言語のサポートに加えて、Windows プロパティ システムからの正規のプロパティ名も受け入れます。 WIC では、画像形式に関連する Windows プロパティ名前空間のサブセットがサポートされます。詳細については、「写真メタデータ ポリシー」を参照してください。 WIC メタデータ クエリとして使用される Windows プロパティは、写真メタデータ ポリシー式と呼ばれます。
たとえば、EXIF 方向フラグの写真メタデータ ポリシー式は次のとおりです。
一般に、ポリシー式は、Windows プロパティ名前空間の対象となる一般的なイメージ メタデータ項目のネイティブ メタデータ クエリよりも推奨されます。 メタデータ クエリ言語は、特定の画像メタデータ項目への低レベルアクセスが必要な場合や、Windows プロパティ システムでサポートされていないカスタムまたは高度なメタデータ項目に最適です。 詳細については、「写真メタデータ ポリシー式 」を参照してください。
ファイル形式固有のメタデータ
次のセクションには、イメージ ファイルの種類ごとに使用可能なメタデータ クエリを一覧表示するテーブルが含まれています。 各テーブルには、次の列があります。
- パス - メタデータ 項目の取得に使用されるクエリ パス。
- 名前 - メタデータ項目の名前。
- 型 - クエリ パスから取得したメタデータ項目の型。 WIC によって取得されたメタデータは、VARTYPE 列挙型を使用してデータ型を報告する PROPVARIANT の形式で返されます。
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 のグローバル およびフレーム レベルのメタデータに使用できるメタデータ クエリ パスについて説明します。
手記
GIF メタデータの完全な一覧と詳細については、W3C Web サイトの GIF 標準 を参照してください。
グローバル メタデータ
次の表に、グローバル GIF メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
パス | 名前 | 種類 |
---|---|---|
/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 メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
パス | 名前 | 種類 |
---|---|---|
/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 Web サイトの PNG 標準 を参照してください。
フレーム メタデータ
次の表に、フレーム レベルの PNG メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
パス | 名前 | 種類 |
---|---|---|
/tEXt または /[*]tEXt where * = 0 から N | テキスト チャンク | VT_UNKNOWN - tEXt クエリ リーダー/ライター |
/tEXt/{str=*} where * = テキストのキーワードの識別 | VT_LPSTR | |
/gAMA | ガマチャンク | VT_UNKNOWN - gAMA クエリ リーダー/ライター |
/gAMA/ImageGamma | VT_UI4 | |
/iTXt または /[*]iTXt where * = 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) イメージ形式では、フレーム レベルのメタデータがサポートされます。
フレーム メタデータ
次の表に、フレーム レベルの TIFF メタデータにアクセスするために使用できるメタデータ クエリ パスを示します。
パス | 名前 | 種類 |
---|---|---|
/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} | 相互運用機能 | 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 | |
/輝度 | 輝度 | VT_UNKNOWN - 輝度クエリ リーダー/ライター |
/luminance/TableEntry | VT_UI1 |VT_VECTOR | |
/クロミナンス | クロミナンス | VT_UNKNOWN - Chrominance クエリ リーダー/ライター |
/chrominance/TableEntry | VT_UI1 |VT_VECTOR | |
/xmp | XMP | VT_UNKNOWN - XMP クエリ リーダー/ライター |
ファイル形式に依存しないメタデータ
以降のセクションでは、複数の画像形式でサポートされるメタデータ形式に関する情報を示します。 各テーブルには、次の列があります。
- 相対パス - メタデータ アイテムの取得に使用される、メタデータ ブロックに対する相対クエリ パス。
- 名前 - メタデータ項目の名前。
- 型 - クエリ パスから取得したメタデータ項目の型。 WIC によって取得されたメタデータは、VARTYPE 列挙型を使用してデータ型を報告する PROPVARIANT の形式で返されます。
手記
ここでのテーブルは、特定のメタデータ形式内のメタデータ項目にアクセスするための相対パスのみを提供します。 完全修飾メタデータ クエリを取得するには、特定のメタデータ形式のメタデータ ブロック クエリにこの相対パスを追加します。
たとえば、JPEG ファイル内の Orientation フラグにアクセスするには、次の式を使用します。
- /app1/ifd/{ushort=274}
TIFF ファイルで、次の式を使用します。
- /ifd/{ushort=274}
この例では、異なる画像形式で特定のメタデータ ブロックが異なる場合があるため、特定のメタデータ項目にアクセスするための完全修飾メタデータ クエリはイメージ形式固有である可能性があることに注意してください。 各形式のテーブルを参照して、特定のメタデータ ブロックにアクセスするための適切なメタデータ クエリを見つけます。
IFD メタデータ
IFD (イメージ ファイル ディレクトリ) は、イメージ メタデータを含むことができる 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 の型を持つ PROPVARIANT として返されます。実際の値はそれぞれULARGE_INTEGERまたはLARGE_INTEGERとして格納されます。 分子と分母にアクセスするには、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} | 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} | 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として格納されます。 分子と分母にアクセスするには、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 標準で定義されている XMP スキーマの URL です。 URL は、スラッシュ (/) などの文字を使用できるようにデータ式で囲まれています。 最後に、"Rating" は XMP スキーマで定義されている実際のメタデータ項目名であり、スキーマ識別子とコロン (:) で区切られます。
この例では、WIC は、完全な URL の代わりに使用できる XMP スキーマのフレンドリ識別子を提供します。 そのため、前のクエリは次のように書き換えることができます。
- /xmp/xmp:Rating
WIC では、次の一般的に使用されるスキーマのわかりやすいスキーマ プレフィックスが提供されます。
特定のスキーマにわかりやすいスキーマ プレフィックスがない場合 (たとえば、イメージにカスタムサード パーティスキーマを使用した XMP メタデータが含まれている場合)、メタデータ クエリでは完全なスキーマ URL を使用する必要があります。
関連トピック
-
概念
-
方法: メタデータ を使用して JPEG イメージを再エンコードする