Compartir a través de


Método IWICProgressiveLevelControl::SetCurrentLevel (wincodec.h)

Especifica el nivel que se va a recuperar en la siguiente llamada a CopyPixels.

Sintaxis

HRESULT SetCurrentLevel(
  [in] UINT nLevel
);

Parámetros

[in] nLevel

Tipo: UINT

Especifica qué nivel se va a devolver a continuación. Si es mayor que el número total de niveles admitidos, se devolverá un error.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Una llamada no tiene que solicitar todos los niveles admitidos. Si un llamador solicita el nivel 1, sin haber solicitado previamente el nivel 0, los bits devueltos por la siguiente llamada a CopyPixels incluirán ambos niveles.

Si el nivel solicitado no es válido, el error devuelto se WINCODEC_ERR_INVALIDPROGRESSIVELEVEL.

Ejemplos

Los usuarios deben usar este método para recorrer en iteración los niveles progresivos de una imagen JPEG progresiva en lugar del método GetCurrentLevel . Los niveles progresivos JPEG vienen determinados por la imagen y no tienen un recuento fijo de niveles. El uso del método GetCurrentLevel obligará a la aplicación a esperar a que se descarguen todos los niveles progresivos antes de que pueda devolverse. En su lugar, las aplicaciones deben usar el código siguiente para recorrer en iteración los niveles progresivos de una imagen JPEG progresiva.

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();
}	

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado wincodec.h
Archivo DLL Windowscodecs.dll

Consulte también

IWICProgressiveLevelControl

Introducción a la descodificación progresiva