Windows Imaging Componentを使用して、WPFアプリケーションで画像メタデータの読み取り/書き込みを行っています。名前空間内にパスが存在するかどうかを知る効率的な方法があるかどうかを知りたいです。たとえば、IPTC名前空間内にパスが存在するかどうかを知りたいのですが、存在しない場合は、画像ヘッダーから名前空間を削除したいと思います。
任意のポインタをいただければ幸いです。
ありがとう、
ムルゲシュ。
IWICMetadataQueryReaderオブジェクトを取得し、そのGetEnumeratorメソッドを使用します。GetEnumeratorから返されたIEnumStringオブジェクトを使用して、そのNextメソッドを呼び出して、少なくとも1つのメタデータが存在するかどうかを確認します。そうでない場合、メタデータブロックは空です。
ルートクエリリーダーからIPTC名前空間に到達しようとすると、少し注意が必要になる場合があります。ルートは、IPTC名前空間(メタデータブロック)をルート上にある単一のCOMオブジェクトとして参照する場合があります。その場合、タイプ(インターフェイス)を把握する必要があります。 )そのCOMオブジェクトの、ツリーを探索するのと同じように、その中に降ります。
WICは無害であると見なされる限り、独自のものを自由に挿入できるため、通常、どのメタデータを書き込まないかをWICで制御することは不可能だと思います。