> ## 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.

# IImageSource インターフェイス

> ABBYY FineReader Engine API の IImageSource インターフェイス — 画像のカスタムソース用インターフェイスです。

<Note>
  このインターフェイスは、Linux 版および Windows 版の FRE で実装されています。
</Note>

これは、画像のカスタムソース用インターフェイスです。このインターフェイスとそのすべてのメソッドは、クライアント側で実装されます。このインターフェイスは、Batch Processor ([BatchProcessor](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor) オブジェクト) によって使用されます。

このインターフェイスを使用すると、画像処理キューを独自の方法で実装できます。Batch Processor は、GetNextImageFile メソッドまたは GetNextImageDocument メソッドを使用して、このキューから次の画像を取得します。

<Warning>
  キュー内のすべての [ImageDocument](/ja/fine-reader/engine/api-reference/image-related-objects/imagedocument) オブジェクトは、処理が終了するまで有効でなければなりません。正しく動作させるには、ImageDocument オブジェクトを [Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクト経由で作成する必要があります。[FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクト経由で作成すると、GetNextImageDocument メソッドの呼び出し中に FRDocument オブジェクトが破棄されるため、エラーが発生する可能性があります。
</Warning>

<div id="methods">
  ## メソッド
</div>

| 名前                                                                                                                    | 説明                               |
| --------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| [GetNextImageDocument](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagedocument-method) | ソースの画像処理キューから次の画像ドキュメントを返します。    |
| [GetNextImageFile](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagefile-method)         | ソースの画像処理キューから次の画像ファイルを返します。      |
| [IsEmpty](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method)                           | ソースの画像処理キューに画像ファイルがあるかどうかを確認します。 |

<div id="input-parameter">
  ## 入力パラメーター
</div>

[BatchProcessor](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor) オブジェクトの [Start](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor/start-method) メソッドは、入力パラメーターとしてこのインターフェイスへのポインターを受け取ります。

<div id="samples">
  ## サンプル
</div>

<Accordion title="C# コード">
  ```csharp theme={null}
  // 画像ファイルのキューを管理するカスタム画像ソースの実装例
  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>

このインターフェイスは、次のコードサンプルと Windows デモツールで使用されています: [BatchProcessing](/ja/fine-reader/engine/guided-tour/samples#batchprocessing)、[BatchProcessingRecognition](/ja/fine-reader/engine/guided-tour/samples#batchprocessingrecognition)。

<div id="see-also">
  ## 参考情報
</div>

[BatchProcessor](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor)
