共用方式為


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,這個方法會將區塊數據直接複製到提供的緩衝區。 在此情況下, 中國BoundsInBlocks 參數是以區塊定義,而不是圖元。 若要判斷這是這種情況,請呼叫 GetFormatInfo 並讀取傳回 WICDdsFormatInfo 結構的 DxgiFormat 成員。

規格需求

需求
最低支援的用戶端 Windows 8.1 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 wincodec.h
程式庫 Windowscodecs.lib
Dll Windowscodecs.dll

另請參閱

IWICBitmapSource::CopyPixels

IWICDdsFrameDecode