C#でマルチフレームページGIFとTIFFを読む方法|IronOCR

C#でマルチフレーム/ページTIFFとGIFを読む方法</#35;

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCRは、OcrImageInputクラスと単一のReadメソッド呼び出しにより、C#でマルチフレームTIFFやGIFファイルからテキストを読み取ることを可能にし、複雑な設定なしに単一および複数ページのドキュメントをサポートします。

TIFF(Tagged Image File Format)は、高画質画像のフォーマットです。 可逆圧縮に対応しているため、スキャン文書やプロの写真撮影に適しています。

GIF(Graphics Interchange Format)は、単純なウェブ画像やアニメーションに使用されます。 可逆圧縮と非可逆圧縮の両方をサポートし、1つのファイルにアニメーションを含めることができます。

クイックスタート: マルチフレーム TIFF または GIF ファイルを使用した OCR

IronOCRでOcrImageInputReadコールを使って複数ページのTIFFやアニメーションGIFからテキストを読み取ります。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronOCR をインストールします

    PM > Install-Package IronOcr

  2. このコード スニペットをコピーして実行します。

    using IronOcr;
    var result = new IronTesseract().Read(new OcrImageInput("Potter.tiff"));
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronOCR を使い始めましょう
    arrow pointer


シングルまたはマルチフレームの TIFF ファイルを読むにはどうすればよいですか?

. 。 OCRを実行するには、`IronTesseract`クラスをインスタンス化します。 `using`ステートメントを使用して、`OcrImageInput`オブジェクトを作成します。 このコンストラクターは、単一フレームと複数フレームの両方の TIFF および TIF 形式をサポートします。 `Read`メソッドを適用して、インポートしたTIFFファイルにOCRを実行します。OcrInputクラスの詳細については、[包括的な`OcrInput`クラスガイド](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-irontesseract/)を参照してください。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-tiff-gif-read-tiff.cs ```
Windows Photo ViewerとVisual Studioがドキュメントの内容を表示 - TIFF処理のデモではない.

なぜIronOCRはマルチフレームTIFFを自動的に扱うのですか? IronOCRは自動的にTIFFファイル内のすべてのフレームを検出し処理します。複数ページのTIFFドキュメントを読み込むと、ライブラリは各フレームを繰り返し処理し、すべてのページにOCRを適用し、結果を単一の`OcrResult`オブジェクトに統合します。 この自動処理により、複雑なフレームごとの処理ロジックが不要になります。 マルチページTIFFの例については、[マルチページTIFF OCRチュートリアル](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/)をご覧ください。 パフォーマンスが重要なアプリケーションでは、[高速 OCR 設定](https://ironsoftware.com/csharp/ocr/examples/tune-tesseract-for-speed-in-dotnet/)を実装して処理速度を最適化してください。 ライブラリの[multithreaded Tesseract OCR](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)機能は、効率的なバッチ処理を保証します。 ### 複数ページの TIFF ドキュメントを読むと何が起こりますか? 複数ページのTIFFドキュメントを処理する場合、IronOCR: 1.**すべてのフレーム**を効率的にメモリにロードします。 2.**前処理**が設定されていれば、各フレームに適用します。 3.**OCRを実行します** ページを順次処理します。 4.**ページ順序を維持したまま結果を集計する**。 各ページの結果にアクセスする ```csharp using IronOcr; IronTesseract ocrTesseract = new IronTesseract(); // Import multi-page TIFF using var imageInput = new OcrImageInput("multipage-document.tiff"); // Perform OCR OcrResult result = ocrTesseract.Read(imageInput); // Access results by page foreach (var page in result.Pages) { Console.WriteLine($"Page {page.PageNumber}:"); Console.WriteLine(page.Text); Console.WriteLine("---"); } ``` 長い操作の場合は、[中止トークン](https://ironsoftware.com/csharp/ocr/examples/abort-token/)を実装して、キャンセルできるようにしてください。 ### 個々の TIFF フレームを別々に処理するにはどうすればよいですか? メモリの制約のためにフレームを個別に処理したり、特定のページに異なる[画像補正フィルタ](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/)を適用したりします: ```csharp using IronOcr; using System.Drawing; // Configure OCR for individual frame processing IronTesseract ocrTesseract = new IronTesseract(); // Load and split TIFF frames using var multiFrameInput = new OcrImageInput("document.tiff"); // Process specific pages (0-indexed) var pageIndices = new[] { 0, 2, 4 }; // Process pages 1, 3, and 5 only foreach (int pageIndex in pageIndices) { using var pageInput = new OcrImageInput("document.tiff", PageIndices: new[] { pageIndex }); // Apply page-specific preprocessing if needed pageInput.DeNoise(); pageInput.Deskew(); var pageResult = ocrTesseract.Read(pageInput); Console.WriteLine($"Page {pageIndex + 1} text: {pageResult.Text}"); } ``` 高度な設定については、[Tesseract詳細設定ガイド](https://ironsoftware.com/csharp/ocr/examples/csharp-configure-setup-tesseract/)をご参照ください。 ## OCRのためにGIFファイルを読み取るにはどうすればよいですか? `OcrImageInput`を構築する際には、GIFファイルのパスを指定してください。 コンストラクタは画像をインポートします。 アニメーションGIFの場合、IronOCRはすべてのフレームを抽出し、個々の画像として処理します。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-tiff-gif-read-gif.cs ``` 初心者向けには、[シンプルなC# OCR Tesseractチュートリアル](https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/)で基本的なOCR操作を説明しています。 ### なぜ OCR はアニメーション GIF で機能するのですか? アニメーションGIFには複数の画像フレームが含まれます。 IronOCRは各フレームを抽出し、別々に処理します。 このような場合に効果的です: - **スクリーンレコーディング**はGIFとして保存されます。 - **アニメーションチュートリアル**とテキストによる説明 - **GIF形式のマルチステップ・ドキュメント**。 - **レガシーシステム**のレポートをGIFとしてエクスポートする。 各フレームのテキストをキャプチャし、時系列に整理します。 画像の向きに問題がある場合、IronOCRは[画像の向きを自動的に修正します](https://ironsoftware.com/csharp/ocr/examples/fix-image-orientation/)。 ### OCRにGIF形式を使用するのはいつですか? GIFのカラーパレットは限られていますが(256色)、一般的です: 1.**ウェブコンテンツ**:オンラインチュートリアルとドキュメント 2.**レガシー・エクスポート**:GIF フォーマットを使用する古いアプリケーション 3.**スクリーンキャプチャ**:スクリーンショットツールのデフォルトはGIFです。 4.**小さいファイルサイズ**:ストレージが限られている場合 最良の結果を得るためには、[IronOCRのDPI設定](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/)を使ってGIFを最適化してください。 [OCR画像最適化フィルタ](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/)を適用して、認識を向上させます。 ### GIFのOCRでよくある問題は何ですか? GIFファイルには課題があります: 1.**色の制限**: 256色の制限はテキストの明瞭さに影響します。 2.**圧縮アーチファクト**:ディザリングが認識を妨げる 3.**低解像度**:72-96 DPIで保存されることが多い。 前処理フィルタを適用します: ```csharp using IronOcr; IronTesseract ocrTesseract = new IronTesseract(); // Import GIF with preprocessing using var imageInput = new OcrImageInput("low-quality.gif"); // Apply filters to improve quality imageInput.ToGrayScale(); // Convert to grayscale imageInput.Contrast(1.5); // Increase contrast imageInput.DeNoise(); // Remove noise imageInput.EnhanceResolution(); // Upscale for better OCR // Perform OCR with enhanced image OcrResult result = ocrTesseract.Read(imageInput); ``` 難しい画像については、[Tesseractで低画質スキャンを修正する](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/)をご覧ください。 ## より良いパフォーマンスのためにスキャン領域を指定するにはどうすればよいですか? `OcrImageInput`を構築するときに`CropRectangle`を含め、OCRのための特定の領域を定義します。 これにより、大規模な文書のパフォーマンスが向上します。 [OCR 地域に関するガイド](https://ironsoftware.com/csharp/ocr/how-to/ocr-region-of-an-image/)を参照してください。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs ``` ### なぜトリミングすると OCR のパフォーマンスが向上するのですか?
完了したOCR処理の実行を示すデバッグコンソールを備えたフォトビューアのTIFFドキュメント
クロッピングにより、パフォーマンスが向上します: 1.**処理領域の削減**:より少ないピクセルがより速い実行を意味する 2.**フォーカス検出**:OCRは特定の領域に最適化されます。 3.**メモリ効率**:作業セットを小さくすることで、RAMの使用量を削減します。 4.**ノイズ除去**:無関係な部分を除外します。 特定領域の処理は、全ページよりも5~10倍速くなります。 リアルタイムのモニタリングのために、[進捗追跡](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/)を実装してください。 ### 地域固有のOCRはいつ使用すべきですか? 地域固有の OCR を使用します: - **フォーム処理**: 特定のフィールドを抽出する。 - **ヘッダー/フッター**:文書のメタデータにアクセスする - **テーブル**:データテーブルを中心に - **バッチ処理**:類似文書のワークフロー フォームフィールドの例 ```csharp using IronOcr; using IronSoftware.Drawing; // Define regions for form fields var nameFieldRegion = new Rectangle(100, 50, 300, 40); var dateFieldRegion = new Rectangle(100, 100, 200, 40); var amountFieldRegion = new Rectangle(100, 150, 150, 40); // Create OCR instance IronTesseract ocr = new IronTesseract(); // Extract from each region using var tiffInput = new OcrImageInput("form.tiff"); // Process each field var name = ocr.Read(new OcrImageInput("form.tiff", ContentArea: nameFieldRegion)).Text.Trim(); var date = ocr.Read(new OcrImageInput("form.tiff", ContentArea: dateFieldRegion)).Text.Trim(); var amount = ocr.Read(new OcrImageInput("form.tiff", ContentArea: amountFieldRegion)).Text.Trim(); Console.WriteLine($"Name: {name}"); Console.WriteLine($"Date: {date}"); Console.WriteLine($"Amount: {amount}"); ``` ### 正しい切り抜き矩形を計算するにはどうすればよいですか? クロップ長方形を計算します: 1.**目視検査**:座標に画像エディタを使用する 2.**プログラム検知**:IronOCRのビジョン機能を使う 3.**テンプレート**:似たような文書に一度リージョンを定義する [ハイライトテキスト機能](https://ironsoftware.com/csharp/ocr/how-to/highlight-texts-as-images/)でデバッグと視覚化を行います: ```csharp using IronOcr; using IronSoftware.Drawing; // Test different regions to find optimal coordinates var testRegions = new[] { new Rectangle(100, 100, 200, 50), new Rectangle(100, 160, 200, 50), new Rectangle(100, 220, 200, 50) }; IronTesseract ocr = new IronTesseract(); foreach (var region in testRegions) { using var input = new OcrImageInput("document.tiff", ContentArea: region); var result = ocr.Read(input); // Save highlighted region for visual verification result.SaveAsHighlightedImage($"region_{region.X}_{region.Y}.png"); } ``` 複雑な文書の場合は、[IronOCRの結果オブジェクト](https://ironsoftware.com/csharp/ocr/examples/results-objects/)を使用して、テキストの位置を特定し、動的なクロップ領域を作成します。 難しい画像については、[OCR画像DPI最適化ガイド](https://ironsoftware.com/csharp/ocr/examples/ocr-image-dpi-for-tesseract/)が最適な解像度を達成するのに役立ちます。 IronOCRはフレーム抽出と処理を自動的に行う合理化されたAPIを提供します。 単一ページのドキュメントを処理する場合でも、複雑な複数フレームのファイルを処理する場合でも、同じシンプルな構文が企業のドキュメントワークフローに適用されます。

よくある質問

C#でマルチフレームTIFFファイルからテキストを抽出するには?

IronOCRはOcrImageInputクラスを使ってマルチフレームTIFFファイルを読み込むシンプルなソリューションを提供します。IronTesseractをインスタンス化し、OcrImageInputでReadメソッドを呼び出し、TIFFファイルのパスを渡すだけです。ライブラリーは自動的にTIFFファイル内の全てのフレームを検出し処理し、結果を一つのOcrResultオブジェクトにまとめます。

OCRライブラリは、単一ページと複数ページの両方のTIFFドキュメントをサポートしていますか?

はい、IronOCRは同じOcrImageInputコンストラクタを通してシングルフレームとマルチフレームのTIFFフォーマットをシームレスに扱います。このライブラリは自動的に複数ページのドキュメント内の各フレームを繰り返し処理し、すべてのページにOCRを適用し、フレームごとの複雑な処理ロジックを不要にします。

アニメーションGIFファイルでOCRを実行できますか?

IronOCRは、TIFFファイルに使用されるOcrImageInputクラスを使用して、アニメーションGIFを含むGIFファイルからのテキスト読み込みをサポートします。このライブラリは単一のReadメソッド呼び出しでGIF画像を処理するので、静的GIF形式とアニメーションGIF形式の両方からテキストを簡単に抽出できます。

TIFF および GIF OCR でサポートされている圧縮形式は何ですか?

IronOcrはロスレス圧縮をサポートするTIFFファイルで動作し、スキャン文書やプロフェッショナルな写真に最適です。GIFファイルについては、このライブラリは可逆圧縮と非可逆圧縮の両方の形式を扱い、1つのファイルに保存されたアニメーションを含みます。

大きな複数ページのTIFF文書のOCRパフォーマンスを最適化するにはどうすればよいですか?

IronOCRは、パフォーマンスを重視するアプリケーションのために、高速OCR設定オプションとマルチスレッドTesseract OCR機能を提供します。これらの機能は、大きな複数ページのTIFFドキュメントを扱う際の効率的なバッチ処理を保証し、処理時間を大幅に短縮します。

TIFFまたはGIF画像内に特定の読み取り領域を定義できますか?

はい、IronOCRではTIFFやGIF画像内のクロップ領域を指定して読み取り領域を定義することができます。この機能により、OCR処理を画像の特定の部分に集中させることができ、特定の領域のテキストのみが必要な場合に精度とパフォーマンスを向上させることができます。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 5,246,844 | バージョン: 2025.12 リリース