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 访问。 但是,确定哪个帧对应于 arrayIndex、 mipLevel 和 sliceIndex 值的三元组并不简单,因为 3D 纹理的每个 mip 级别具有不同的深度 () 切片数。 此方法通过计算给定三个索引的正确帧,为 DDS 图像提供比 IWICBitmapDecoder::GetFrame 更方便。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | wincodec.h |
Library | Windowscodecs.lib |
DLL | Windowscodecs.dll |