次の方法で共有


IWICFastMetadataEncoder インターフェイス (wincodec.h)

インプレース メタデータ編集に使用されるメソッドを公開します。 高速メタデータ エンコーダーを使用すると、イメージを完全に再エンコードすることなく、画像にメタデータを追加および削除できます。

継承

IWICFastMetadataEncoder インターフェイスは、IUnknown インターフェイスから継承されます。 IWICFastMetadataEncoder には、次の種類のメンバーもあります。

メソッド

IWICFastMetadataEncoder インターフェイスには、これらのメソッドがあります。

 
IWICFastMetadataEncoder::Commit

イメージ ストリームに対するメタデータの変更を最終処理します。
IWICFastMetadataEncoder::GetMetadataQueryWriter

高速メタデータ エンコード用のメタデータ クエリ ライターを取得します。

解説

インプレース メタデータ更新を実行するには、 WICDecodeOptionsWICDecodeMetadataCacheOnDemand を使用してデコーダーを作成する必要があります。 WICDecodeMetadataCacheOnLoad オプションを使用すると、デコーダーはメタデータの更新を実行するために必要なファイル ストリームを解放します。

すべてのメタデータ形式で高速メタデータ エンコードがサポートされているわけではありません。 メタデータをサポートするネイティブ メタデータ ハンドラーは、IFD、Exif、XMP、GPS です。

高速メタデータ エンコーダーが失敗した場合、メタデータを追加するには、イメージを完全に再エンコードする必要があります。

次に、画像フレームから高速メタデータ エンコーダーを取得し、そのクエリ ライターを使用してメタデータ項目を書き込む方法を示します。

IWICFastMetadataEncoder *pFME = NULL;
IWICMetadataQueryWriter *pFMEQW = NULL;

hr = pFactory->CreateFastMetadataEncoderFromFrameDecode(pFrameDecode, &pFME);

if (SUCCEEDED(hr))
{
 	hr = pFME->GetMetadataQueryWriter(&pFMEQW);
}

if (SUCCEEDED(hr))
{
	 // Add additional metadata
 	PROPVARIANT value;

	 PropVariantInit(&value);

 	value.vt = VT_UI2;
	 value.uiVal = 99;
 	hr = pFMEQW->SetMetadataByName(L"/app1/ifd/{ushort=18249}", &value);

 	PropVariantClear(&value);
}

if (SUCCEEDED(hr))
{
	 hr = pFME->Commit();
}

要件

   
サポートされている最小のクライアント WINDOWS XP と SP2、Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincodec.h