IWICDdsDecoder::GetFrame 方法 (wincodec.h)

检索 DDS 图像的指定帧。

语法

HRESULT GetFrame(
  [in]  UINT                  arrayIndex,
  [in]  UINT                  mipLevel,
  [in]  UINT                  sliceIndex,
  [out] IWICBitmapFrameDecode **ppIBitmapFrame
);

参数

[in] arrayIndex

类型: UINT

纹理数组中请求的索引。

[in] mipLevel

类型: UINT

请求的 mip 级别。

[in] sliceIndex

类型: UINT

3D 纹理中请求的切片。

[out] ppIBitmapFrame

类型: IWICBitmapFrameDecode**

指向 IWICBitmapFrameDecode 对象的指针。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

DDS 文件可以包含组织为三级层次结构的多个图像。 首先,DDS 文件在一个纹理数组中可能包含多个纹理。 其次,每个纹理可以有多个 mip 级别。 最后,纹理可以是 3D (体积) 纹理,并具有多个切片,每个切片都是 2D 纹理。 有关详细信息,请参阅 DDS 文档

WIC 将此三级层次结构映射到 IWICBitmapFrameDecode 的线性数组,可通过 IWICBitmapDecoder::GetFrame 访问。 但是,确定哪个帧对应于 arrayIndexmipLevelsliceIndex 值的三元组并不简单,因为 3D 纹理的每个 mip 级别具有不同的深度 () 切片数。 此方法通过计算给定三个索引的正确帧,为 DDS 图像提供比 IWICBitmapDecoder::GetFrame 更方便。

要求

要求
最低受支持的客户端 Windows 8.1 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 wincodec.h
Library Windowscodecs.lib
DLL Windowscodecs.dll

另请参阅

CreateBitmap

ID3D11Device::CreateTexture2D

IWICDdsDecoder

WICDdsFormatInfo