次の方法で共有


IWICDdsFrameDecode::CopyBlocks メソッド (wincodec.h)

DDS ファイル内にネイティブに格納されているピクセル データを要求します。

構文

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

パラメーター

[in] prcBoundsInBlocks

型: const WICRect*

ソースからコピーする四角形。 NULL 値は、テクスチャ全体を指定します。

テクスチャでブロック圧縮 DXGI_FORMATを使用する場合、四角形のすべての値はピクセルではなくブロック数で表されます。

[in] cbStride

型: UINT

宛先バッファーのストライド (バイト単位)。 これは、バッファー ポインターから次のデータ行までのバイト数を表します。 テクスチャでブロック圧縮 DXGI_FORMATを使用する場合、"データ行" は、複数のピクセル スキャンラインを含むブロックの行として定義されます。

[in] cbBufferSize

型: UINT

コピー先バッファーのサイズ (バイト単位)。

[out] pbBuffer

型: BYTE*

宛先バッファーへのポインター。

戻り値

型: HRESULT

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

注釈

テクスチャでブロック圧縮 DXGI_FORMATを使用しない場合、このメソッドは IWICBitmapSource::CopyPixels と同様に動作します。 ただし、ピクセル形式の変換は実行されず、代わりに DDS ファイルから生データが生成されます。

テクスチャがブロック圧縮 DXGI_FORMATを使用する場合、このメソッドはブロック データを指定されたバッファーに直接コピーします。 この場合、 prcBoundsInBlocks パラメーターはピクセルではなくブロックで定義されます。 これが該当するかどうかを判断するには、GetFormatInfo を呼び出し、返された WICDdsFormatInfo 構造体の DxgiFormat メンバーを読み取ります。

要件

要件
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincodec.h
Library Windowscodecs.lib
[DLL] Windowscodecs.dll

こちらもご覧ください

IWICBitmapSource::CopyPixels

IWICDdsFrameDecode