Поделиться через


Метод 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, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincodec.h
DLL Windowscodecs.dll

См. также раздел

IWICProgressiveLevelControl

Общие сведения о прогрессивном декодировании