エンコード (Windows イメージング コンポーネント)
エンコーダーの作成者は、次の操作を行う必要があります。
- IWICBitmapEncoder インターフェイスと IWICBitmapFrameEncode インターフェイスを実装します。
- フレーム エンコーダーに IWICMetadataBlockWriter を実装します。 コーデックでコンテナー レベルのメタデータがサポートされている場合は、このインターフェイスをコンテナー レベルのエンコーダーとフレーム エンコーダーに実装する必要があります。
- コンテナー形式に必須のメタデータ ブロックが暗黙的に含まれている場合は、そのようなブロックごとにメタデータ ライターをインスタンス化します。 たとえば、TIFF 形式ではフレームごとにインターフェイス デバイス (IFD) が必要であるため、IFD ライターは常に公開する必要があります。
- メタデータ ライターのコレクションを管理するためのサポートを実装します。 ブロック ライターは、エンコードできるメタデータ ブロックの種類に関する注文要件またはコンテナーの制限を管理します。 ブロック ライターは、新しいメタデータ ライターをコンテナー形式で埋め込むことができることを確認する必要があります。
- イメージ ストリームをエンコードする場合は、 WICSerializeMetadataContent を呼び出して、各メタデータ ライターのコンテンツをストリームにシリアル化します。 メタデータ ブロックに "クリティカル" メタデータが含まれている場合は、メタデータ ライターにコンテンツのシリアル化を要求する前に、エンコーダーで重要なメタデータ項目を設定する必要があります。
- 不明なメタデータ ハンドラーを確認して、冗長なメタデータ ブロックが存在しないことを確認します。 デコードまたはエンコードのシナリオでメタデータを保持する一方で、不明なブロックが必須のメタデータ ブロックの重複である可能性があるため、これは重要です。
関連トピック