WIC API の概要

Windows Imaging Component (WIC) には、C および C++ で使用するためのコンポーネントオブジェクトモデル (COM) ベースの API が用意されています。 WIC API は、次のようなさまざまなイメージ関連機能を公開しています。

  • 標準の web イメージ形式用の組み込みコーデック。
  • 標準メタデータ形式の組み込みサポート。
  • ワイド範囲のピクセル形式のサポート。
  • 高色のサポート。30ビットの拡張範囲、30ビットの高精度、および48ビットの高精度と幅域外ピクセル形式を含みます。
  • イメージコーデック、ピクセル形式、およびメタデータ形式用の拡張可能なフレームワーク。

このトピックでは、次のトピックについて説明します。

WIC ヘッダーファイル

WIC Api は、次のヘッダーおよびインターフェイス定義言語 (IDL) ファイルで定義されています。

ファイル 説明
wincodec. h プライマリ WIC Api の C および C++ バージョンを定義します。
wincodec .idl プライマリ WIC インターフェイスを定義します。
wincodecsdk メタデータの WIC Api の C および C++ バージョンを定義します。
wincodecsdk WIC メタデータインターフェイスを定義します。
wincodec _ プロキシ .h WIC プロキシのエクスポートを定義します。

WIC を使用するには、アプリケーションに必要な API に応じて、アプリケーションに wincodec .h と wincodecsdk のどちらかまたは両方が含まれている必要があります。

ライブラリファイル

WIC ライブラリファイル:

ファイル 説明
windowscodecs Windows ソフトウェア開発キット (SDK) によって提供されるインポートライブラリ。
windowscodecs.dll オペレーティングシステムによって提供されるストック実装ライブラリ。

WIC Api にリンクするには、追加のリンカー依存関係としてアプリケーションに windowscodec .lib を含める必要があります。

クラスファクトリ

次の表では、wic コンポーネントを作成するために WIC Api が提供する2つの COM クラスファクトリについて説明します。

ファクトリインターフェイス 説明
IWICImagingFactory WIC コンポーネントを使用したアプリケーション開発のためのプライマリクラスファクトリ。 このファクトリは、イメージデコーダー、エンコーダー、ストリームなどのコンポーネントを作成します。
IWICComponentFactory WIC コンポーネントの開発者を対象としたクラスファクトリ。 このファクトリから作成されたコンポーネントは、主にコーデックおよびメタデータハンドラーの開発に使用されます。

いずれかのクラスファクトリを作成するには、 CoCreateInstance COM 関数を使用します。 次の例は、WIC イメージファクトリの作成を示しています。

// Initialize COM
CoInitialize(NULL);

// The factory pointer
IWICImagingFactory *pFactory = NULL;

// Create the COM imaging factory
HRESULT hr = CoCreateInstance(
    CLSID_WICImagingFactory,
    NULL,
    CLSCTX_INPROC_SERVER,
    IID_PPV_ARGS(&pFactory)
);

イメージングコンポーネント

WIC Api には、いくつかの種類のイメージングコンポーネントが用意されています。 次の表では、いくつかの一般的な WIC コンポーネントについて説明します。 使用可能なコンポーネントの完全な一覧については、「 WIC のインターフェイス」を参照してください。

コンポーネントの種類 説明
Bitmap IWICBitmapSourceの書き込み可能なメモリ内表現を表します。
デコーダー 画像データをストリームからイメージ処理に役立つ形式にデコードするために使用します。
エンコーダー 画像データをストリームに書き込みます。
ストリーム ファイル、ネットワークリソース、メモリブロックなどのデータの読み取りと書き込みに使用されます。
フォーマットコンバーター あるピクセル形式から別のピクセル形式に変換するために使用します。
メタデータクエリリーダー イメージまたはイメージフレームのメタデータを読み取るために使用されます。
メタデータクエリライター イメージまたはイメージフレームにメタデータを書き込むために使用されます。

参照

参照

サンプルとコード例