IWICProgressiveLevelControl::SetCurrentLevel 方法 (wincodec.h)
指定要在下一次调用 CopyPixels 时检索的级别。
语法
HRESULT SetCurrentLevel(
[in] UINT nLevel
);
参数
[in] nLevel
类型: UINT
指定要下一步返回的级别。 如果大于支持的级别总数,将返回错误。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
调用不必请求支持的每个级别。 如果调用方请求级别 1,但没有以前请求的级别 0,则下一次调用 CopyPixels 返回的位将包括这两个级别。
如果请求的级别无效,则返回的错误 WINCODEC_ERR_INVALIDPROGRESSIVELEVEL。
示例
用户应使用此方法循环访问渐进 JPEG 图像的渐进级别,而不是 GetCurrentLevel 方法。 JPEG 渐进式级别由映像确定,没有固定的级别计数。 使用 GetCurrentLevel 方法将强制应用程序等待下载所有渐进级别,然后才能返回。 相反,应用程序应使用以下代码循环访问渐进式 JPEG 映像的渐进级别。
IWICProgressiveLevelControl *pProgressive = NULL;
HRESULT hr = (pBitmapFrame->QueryInterface(
IID_IWICProgressiveLevelControl,
(void**) &pProgressive));
if (SUCCEEDED(hr))
{
for (UINT uCurrentLevel = 0; SUCCEEDED(hr); uCurrentLevel++)
{
hr = pProgressive->SetCurrentLevel(uCurrentLevel);
if (WINCODEC_ERR_INVALIDPROGRESSIVELEVEL == hr)
{
// No more levels
break;
}
if (SUCCEEDED(hr))
{
// Output the current level
hr = pBitmapFrame->CopyPixels(...);
}
}
}
if (pProgressive)
{
pProgressive->Release();
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | wincodec.h |
DLL | Windowscodecs.dll |