次の方法で共有


IWICBitmapSource::CopyPixels メソッド (wincodec.h)

ピクセルを生成するようにオブジェクトに指示します。

構文

HRESULT CopyPixels(
  [in]  const WICRect *prc,
  [in]  UINT          cbStride,
  [in]  UINT          cbBufferSize,
  [out] BYTE          *pbBuffer
);

パラメーター

[in] prc

型: const WICRect*

コピーする四角形。 NULL 値は、ビットマップ全体を指定します。

[in] cbStride

型: UINT

ビットマップのストライド

[in] cbBufferSize

型: UINT

バッファーのサイズ。

[out] pbBuffer

型: BYTE*

バッファーを指すポインター。

戻り値

種類: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

解説

CopyPixels は、実際の処理をトリガーする 2 つのメイン画像処理ルーチン (もう 1 つは Lock) のいずれかです。 アルゴリズムに従ってピクセルを生成するようにオブジェクトに指示します。これには、ディスクに格納されている JPEG の一部のデコード、メモリ ブロックのコピー、複雑なグラデーションの分析計算が含まれる場合があります。 アルゴリズムは、インターフェイスを実装するオブジェクトに完全に依存します。

呼び出し元は、prc パラメーターを使用して目的の四角形 (ROI) に操作を制限できます。 ROI サブ四角形は、ビットマップの境界に完全に含まれている必要があります。 NULL ROI を指定すると、ビットマップ全体が返されることを意味します。

呼び出し元はメモリ管理を制御し、コピーの結果とバッファーの境界 (cbBufferSize) の出力バッファー (pbBuffer) を提供する必要があります。 cbStride パラメーターは、出力バッファー内の垂直方向に隣接する 2 つのピクセル間のバイト数を定義します。 呼び出し元は、ビットマップの幅、高さ、ピクセル形式、およびコピー メソッドに提供されるサブ四角形に基づいて、呼び出しを完了するのに十分なバッファーがあることを確認する必要があります。

呼び出し元が JPEG などの高価な IWICBitmapSource の多数のコピーを実行する必要がある場合は、まずメモリ内 IWICBitmap を作成することをお勧めします。

コーデック開発者向け解説

呼び出し先は、出力バッファーの各行の最初の (prc-Width>*bitsperpixel+7)/8 バイトにのみ書き込む必要があります (この場合、行は cbStride バイトの連続した文字列です)。

要件

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