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 |