http://msdn.microsoft.com/en-us/library/windows/desktop/ee719799(v=vs.85).aspxのドキュメントを確認しました 。
SetPropertyItem
コンテキストとして、JPEG-XR 形式でエンコードしようとしており、GDI+の機能をエミュレートしたいと考えていGetPropertyItem
ます。
私は基本的に3つの質問があります:
- カスタム プロパティを exif ヘッダーに追加したい場合、正しいクエリ パスは何ですか?
- カスタム ID を使用し
{ushort=1111}
て識別できますか? また、ID が既に定義されているかどうかを確認するにはどうすればよいですか? id
これは GdiPlus::PropertyItemのフィールドと同じですか?
たとえば、次は有効ですか。
PROPVARIANT value;
value.vt = VT_LPWSTR;
value.pwszVal= L"Metadata Test";
hr = piFrameQWriter->SetMetadataByName(L"/ifd/exif/{ushort=1111}");
このコード ブロックは成功しますが、次を使用して同じメタデータを読み戻そうとすると、次のようになります。
IWICMetadataQueryReader *pQueryReader = NULL;
if(SUCCEEDED(hr))
{
hr = piFrame->GetMetadataQueryReader(&pQueryReader);
}
if (SUCCEEDED(hr))
{
PROPVARIANT value;
hr = pQueryReader->GetMetadataByName(L"/ifd/exif/{ushort=1111}", &value);
}
これは E_INVALIDARG エラーを返します。
これがどのように機能するかを理解するための助けをいただければ幸いです。ドキュメントを正しく理解していないように感じます。
ありがとうございました。