Este método é implementado no FRE para Linux e Windows.
Este método é implementado no lado do cliente. O método retorna o próximo arquivo de imagem da fila de processamento de imagens da fonte.
Para Windows, se você trabalhar com imagens já carregadas na memória (por exemplo, usando os métodos OpenBitmap ou OpenDib do objeto Engine), implemente GetNextImageDocument.
Uma implementação do método GetNextImageFile pode incluir um tempo de espera pelo próximo arquivo de imagem. No entanto, não recomendamos implementar tempos de espera longos, pois o FineReader Engine não é multithread. Durante a espera pelo próximo arquivo, o Engine não poderá processar mensagens dos processos de reconhecimento nem receber notificações de que determinadas páginas foram processadas. Se você realmente precisar especificar um tempo de espera longo, o método GetNextImageFile poderá retornar 0. Nesse caso, o Engine continuará processando mensagens dos processos de reconhecimento e fornecendo imagens reconhecidas e, após algum tempo, verificará se a fila de imagens está vazia. Se a fila não estiver vazia (isto é, se IImageSource::IsEmpty retornar FALSE), o Engine chamará o método GetNextImageFile novamente. No entanto, se o método GetNextImageFile retornar 0 e não houver mais páginas para processar, o FineReader Engine devolverá o controle ao usuário: o método IBatchProcessor::GetNextProcessedPage retornará 0.
A implementação cliente deste método deve garantir que todas as exceções lançadas dentro do método sejam capturadas e tratadas, e que nenhuma exceção seja propagada para fora dele. A propagação de uma exceção para fora do método pode levar a resultados imprevisíveis (como o encerramento do programa).
// Implementação de exemplo de uma fonte de imagens personalizada que mantém uma fila de arquivos de imagempublic 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{ ...}