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

另請參閱

IWICProgressiveLevelControl

漸進式譯碼概觀