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 Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincodec.h |
Dll | Windowscodecs.dll |