> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Método GetNextImageFile de la interfaz IImageSource

> Método GetNextImageFile de la interfaz IImageSource en la API de ABBYY FineReader Engine — Este método está implementado del lado del cliente.

<Note>
  Este método está implementado en FRE para Linux y Windows.
</Note>

Este método está implementado del lado del cliente. Devuelve el siguiente archivo de imagen de la cola de procesamiento de imágenes del origen.

<Note>
  En Windows, si trabaja con imágenes que ya se han cargado en la memoria (por ejemplo, si usa los métodos [OpenBitmap](/es/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/openbitmap-method) o [OpenDib](/es/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/opendib-method) del objeto [Engine](/es/fine-reader/engine/api-reference/engine-object-iengine-interface)), implemente [GetNextImageDocument](/es/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagedocument-method).
</Note>

Una implementación del método GetNextImageFile puede incluir un tiempo de espera para el siguiente archivo de imagen. Sin embargo, no recomendamos implementar tiempos de espera prolongados, ya que FineReader Engine no es multihilo. Mientras espera el siguiente archivo, Engine no podrá procesar mensajes de los procesos de reconocimiento ni recibir notificaciones de que determinadas páginas ya se han procesado. Si realmente necesita especificar un tiempo de espera prolongado, el método GetNextImageFile puede devolver 0. En este caso, Engine seguirá procesando mensajes de los procesos de reconocimiento y proporcionando imágenes reconocidas y, al cabo de un tiempo, comprobará si la cola de imágenes está vacía. Si la cola no está vacía (es decir, si [IImageSource::IsEmpty](/es/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method) devuelve FALSE), Engine volverá a llamar al método GetNextImageFile. Sin embargo, si el método GetNextImageFile devuelve 0 y no quedan más páginas por procesar, FineReader Engine devolverá el control al usuario: el método [IBatchProcessor::GetNextProcessedPage](/es/fine-reader/engine/api-reference/batch-processor/batchprocessor/getnextprocessedpage-method) devolverá 0.

<div id="syntax">
  ## Sintaxis
</div>

<div id="c">
  ### C++
</div>

```cpp theme={null}
HRESULT GetNextImageFile( IFileAdapter** Result );
```

### C\#

```csharp theme={null}
IFileAdapter GetNextImageFile();
```

<div id="visual-basic-net">
  ### Visual Basic .NET
</div>

```vb theme={null}
Function GetNextImageFile() As IFileAdapter
```

<div id="parameters">
  ## Parámetros
</div>

Result

\[out, retval] Puntero a una variable de tipo puntero [IFileAdapter](/es/fine-reader/engine/api-reference/batch-processor/ifileadapter)\* que proporciona acceso al siguiente archivo de imagen de la cola.

<div id="return-values">
  ## Valores de retorno
</div>

\[Solo para C++] Si este método devuelve un valor distinto de S\_OK, significa que se produjo un error del lado del cliente.

<div id="remarks">
  ## Observaciones
</div>

* La implementación cliente de este método debe asegurarse de que todas las excepciones que se produzcan dentro del método se capturen y se controlen, y de que ninguna se propague fuera de él. La propagación de una excepción fuera del método puede dar lugar a resultados imprevisibles (como la finalización del programa).
* Si su licencia incluye el módulo [Apertura de formatos ofimáticos](/es/fine-reader/engine/licensing/modules#officeformatsopening), también puede usar este método para abrir documentos digitales en [formatos compatibles](/es/fine-reader/engine/specifications/supported-digital-document-input-formats).

<div id="samples">
  ## Ejemplos
</div>

<Accordion title="Código C#">
  ```csharp theme={null}
  // Implementación de ejemplo de un origen de imágenes personalizado que mantiene una cola de archivos de imagen
  public class ImageSourceCallback : FREngine.IImageSource
  {
     public ImageSourceCallback( string imageFilesDirectory )
     {
         imageFiles = ImageSourceHelper.LoadFilesNames( imageFilesDirectory );
         nextFileIndex = 0;
     }
     public bool IsEmpty()
     {
         return nextFileIndex >= imageFiles.Length;
     }
     public FREngine.IFileAdapter GetNextImageFile()
     {
         if( !IsEmpty() ) {
             return new FileAdapterCallback( imageFiles[nextFileIndex++] );
         }
         return null;
     }
     public FREngine.IImageDocument GetNextImageDocument()
     {
         ...
     }
     private string[] imageFiles;
     private int nextFileIndex;
  }
  public class FileAdapterCallback : FREngine.IFileAdapter
  {
      ...
  }
  public class ImageSourceHelper
  {
      ...
  }
  ```
</Accordion>

<div id="see-also">
  ## Consulte también
</div>

[IImageSource](/es/fine-reader/engine/api-reference/batch-processor/iimagesource)

[GetNextImageDocument](/es/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagedocument-method)

[IsEmpty](/es/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method)

[IFileAdapter](/es/fine-reader/engine/api-reference/batch-processor/ifileadapter)
