IronOCR ハウツー マルチページ/フレームTIFF & GIF C#でマルチフレーム/ページTIFFとGIFを読む方法</#35; カーティス・チャウ 更新日:2026年1月10日 IronOCR をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る 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でOcrImageInputとReadコールを使って複数ページのTIFFやアニメーションGIFからテキストを読み取ります。 今すぐ NuGet で PDF を作成してみましょう: NuGet パッケージ マネージャーを使用して IronOCR をインストールします PM > Install-Package IronOcr このコード スニペットをコピーして実行します。 using IronOcr; var result = new IronTesseract().Read(new OcrImageInput("Potter.tiff")); 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronOCR を使い始めましょう 30日間無料トライアル ### 最小限のワークフロー(5ステップ) マルチフレームGIFやTIFFを読み込むためのC#ライブラリをダウンロードする。 シングル/マルチフレームTIFFをインポートするには、OcrImageInputを使用してください。 OCRを実行するためにReadメソッドを呼び出します。 同じクラスを使ってGIF画像をインポートする クロップ領域を指定し、読み取り領域を定義する シングルまたはマルチフレームの TIFF ファイルを読むにはどうすればよいですか? . <! -- ![スクリーンショット] シングルまたはマルチフレームのtiffファイルを読むにはどうすればよいですか? IronPDFで](/static-assets/images/TODO/how-do-i-read-single-or-multi-frame-tiff-files-step_screenshot.webp)-->。 <!ステップバイステップのプロセスを示すスクリーンショット -->。 OCRを実行するには、IronTesseractクラスをインスタンス化します。 usingステートメントを使用して、OcrImageInputオブジェクトを作成します。 このコンストラクターは、単一フレームと複数フレームの両方の TIFF および TIF 形式をサポートします。 Readメソッドを適用して、インポートしたTIFFファイルにOCRを実行します。 :path=/static-assets/ocr/content-code-examples/how-to/input-tiff-gif-read-tiff.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Import TIFF/TIF using var imageInput = new OcrImageInput("Potter.tiff"); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Import TIFF/TIF Private imageInput = New OcrImageInput("Potter.tiff") ' Perform OCR Private ocrResult As OcrResult = ocrTesseract.Read(imageInput) $vbLabelText $csharpLabel . なぜIronOCRはマルチフレームTIFFを自動的に扱うのですか? IronOCRは自動的にTIFFファイル内のすべてのフレームを検出し処理します。複数ページのTIFFドキュメントを読み込むと、ライブラリは各フレームを繰り返し処理し、すべてのページにOCRを適用し、結果を単一のOcrResultオブジェクトに統合します。 この自動処理により、複雑なフレームごとの処理ロジックが不要になります。 マルチページTIFFの例については、マルチページTIFF OCRチュートリアルをご覧ください。 パフォーマンスが重要なアプリケーションでは、高速 OCR 設定を実装して処理速度を最適化してください。 ライブラリのmultithreaded Tesseract OCR機能は、効率的なバッチ処理を保証します。 複数ページの TIFF ドキュメントを読むと何が起こりますか? 複数ページのTIFFドキュメントを処理する場合、IronOCR: 1.すべてのフレームを効率的にメモリにロードします。 2.前処理が設定されていれば、各フレームに適用します。 3.OCRを実行します ページを順次処理します。 4.ページ順序を維持したまま結果を集計する。 各ページの結果にアクセスする 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("---"); } 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("---"); } Imports IronOcr Dim ocrTesseract As New IronTesseract() ' Import multi-page TIFF Using imageInput As New OcrImageInput("multipage-document.tiff") ' Perform OCR Dim result As OcrResult = ocrTesseract.Read(imageInput) ' Access results by page For Each page In result.Pages Console.WriteLine($"Page {page.PageNumber}:") Console.WriteLine(page.Text) Console.WriteLine("---") Next End Using $vbLabelText $csharpLabel 長い操作の場合は、中止トークンを実装して、キャンセルできるようにしてください。 個々の TIFF フレームを別々に処理するにはどうすればよいですか? メモリの制約のためにフレームを個別に処理したり、特定のページに異なる画像補正フィルタを適用したりします: 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}"); } 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}"); } Imports IronOcr Imports System.Drawing ' Configure OCR for individual frame processing Dim ocrTesseract As New IronTesseract() ' Load and split TIFF frames Using multiFrameInput As New OcrImageInput("document.tiff") ' Process specific pages (0-indexed) Dim pageIndices As Integer() = {0, 2, 4} ' Process pages 1, 3, and 5 only For Each pageIndex As Integer In pageIndices Using pageInput As New OcrImageInput("document.tiff", PageIndices:=New Integer() {pageIndex}) ' Apply page-specific preprocessing if needed pageInput.DeNoise() pageInput.Deskew() Dim pageResult = ocrTesseract.Read(pageInput) Console.WriteLine($"Page {pageIndex + 1} text: {pageResult.Text}") End Using Next End Using $vbLabelText $csharpLabel 高度な設定については、Tesseract詳細設定ガイドをご参照ください。 OCRのためにGIFファイルを読み取るにはどうすればよいですか? OcrImageInputを構築する際には、GIFファイルのパスを指定してください。 コンストラクタは画像をインポートします。 アニメーションGIFの場合、IronOCRはすべてのフレームを抽出し、個々の画像として処理します。 :path=/static-assets/ocr/content-code-examples/how-to/input-tiff-gif-read-gif.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Import GIF using var imageInput = new OcrImageInput("Potter.gif"); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Import GIF Private imageInput = New OcrImageInput("Potter.gif") ' Perform OCR Private ocrResult As OcrResult = ocrTesseract.Read(imageInput) $vbLabelText $csharpLabel 初心者向けには、シンプルなC# OCR Tesseractチュートリアルで基本的なOCR操作を説明しています。 なぜ OCR はアニメーション GIF で機能するのですか? アニメーションGIFには複数の画像フレームが含まれます。 IronOCRは各フレームを抽出し、別々に処理します。 このような場合に効果的です: スクリーンレコーディングはGIFとして保存されます。 アニメーションチュートリアルとテキストによる説明 GIF形式のマルチステップ・ドキュメント。 レガシーシステムのレポートをGIFとしてエクスポートする。 各フレームのテキストをキャプチャし、時系列に整理します。 画像の向きに問題がある場合、IronOCRは画像の向きを自動的に修正します。 OCRにGIF形式を使用するのはいつですか? GIFのカラーパレットは限られていますが(256色)、一般的です: 1.ウェブコンテンツ:オンラインチュートリアルとドキュメント 2.レガシー・エクスポート:GIF フォーマットを使用する古いアプリケーション 3.スクリーンキャプチャ:スクリーンショットツールのデフォルトはGIFです。 4.小さいファイルサイズ:ストレージが限られている場合 最良の結果を得るためには、IronOCRのDPI設定を使ってGIFを最適化してください。 OCR画像最適化フィルタを適用して、認識を向上させます。 GIFのOCRでよくある問題は何ですか? GIFファイルには課題があります: 1.色の制限: 256色の制限はテキストの明瞭さに影響します。 2.圧縮アーチファクト:ディザリングが認識を妨げる 3.低解像度:72-96 DPIで保存されることが多い。 前処理フィルタを適用します: 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); 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); Imports IronOcr Dim ocrTesseract As New IronTesseract() ' Import GIF with preprocessing Using imageInput As 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 Dim result As OcrResult = ocrTesseract.Read(imageInput) End Using $vbLabelText $csharpLabel 難しい画像については、Tesseractで低画質スキャンを修正するをご覧ください。 より良いパフォーマンスのためにスキャン領域を指定するにはどうすればよいですか? OcrImageInputを構築するときにCropRectangleを含め、OCRのための特定の領域を定義します。 これにより、大規模な文書のパフォーマンスが向上します。 OCR 地域に関するガイドを参照してください。 :path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs using IronOcr; using IronSoftware.Drawing; using System; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Specify crop region Rectangle scanRegion = new Rectangle(800, 200, 900, 400); // Add image using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); // Output the result to console Console.WriteLine(ocrResult.Text); Imports IronOcr Imports IronSoftware.Drawing Imports System ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Specify crop region Private scanRegion As New Rectangle(800, 200, 900, 400) ' Add image Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion) ' Perform OCR Private ocrResult As OcrResult = ocrTesseract.Read(imageInput) ' Output the result to console Console.WriteLine(ocrResult.Text) $vbLabelText $csharpLabel なぜトリミングすると OCR のパフォーマンスが向上するのですか? クロッピングにより、パフォーマンスが向上します: 1.処理領域の削減:より少ないピクセルがより速い実行を意味する 2.フォーカス検出:OCRは特定の領域に最適化されます。 3.メモリ効率:作業セットを小さくすることで、RAMの使用量を削減します。 4.ノイズ除去:無関係な部分を除外します。 特定領域の処理は、全ページよりも5~10倍速くなります。 リアルタイムのモニタリングのために、進捗追跡を実装してください。 地域固有のOCRはいつ使用すべきですか? 地域固有の OCR を使用します: フォーム処理: 特定のフィールドを抽出する。 ヘッダー/フッター:文書のメタデータにアクセスする テーブル:データテーブルを中心に バッチ処理:類似文書のワークフロー フォームフィールドの例 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}"); 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}"); Imports IronOcr Imports IronSoftware.Drawing ' Define regions for form fields Dim nameFieldRegion As New Rectangle(100, 50, 300, 40) Dim dateFieldRegion As New Rectangle(100, 100, 200, 40) Dim amountFieldRegion As New Rectangle(100, 150, 150, 40) ' Create OCR instance Dim ocr As New IronTesseract() ' Extract from each region Using tiffInput As New OcrImageInput("form.tiff") ' Process each field Dim name As String = ocr.Read(New OcrImageInput("form.tiff", ContentArea:=nameFieldRegion)).Text.Trim() Dim date As String = ocr.Read(New OcrImageInput("form.tiff", ContentArea:=dateFieldRegion)).Text.Trim() Dim amount As String = ocr.Read(New OcrImageInput("form.tiff", ContentArea:=amountFieldRegion)).Text.Trim() Console.WriteLine($"Name: {name}") Console.WriteLine($"Date: {date}") Console.WriteLine($"Amount: {amount}") End Using $vbLabelText $csharpLabel 正しい切り抜き矩形を計算するにはどうすればよいですか? クロップ長方形を計算します: 1.目視検査:座標に画像エディタを使用する 2.プログラム検知:IronOCRのビジョン機能を使う 3.テンプレート:似たような文書に一度リージョンを定義する ハイライトテキスト機能でデバッグと視覚化を行います: 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"); } 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"); } Imports IronOcr Imports IronSoftware.Drawing ' Test different regions to find optimal coordinates Dim testRegions = { New Rectangle(100, 100, 200, 50), New Rectangle(100, 160, 200, 50), New Rectangle(100, 220, 200, 50) } Dim ocr As New IronTesseract() For Each region In testRegions Using input As New OcrImageInput("document.tiff", ContentArea:=region) Dim result = ocr.Read(input) ' Save highlighted region for visual verification result.SaveAsHighlightedImage($"region_{region.X}_{region.Y}.png") End Using Next $vbLabelText $csharpLabel 複雑な文書の場合は、IronOCRの結果オブジェクトを使用して、テキストの位置を特定し、動的なクロップ領域を作成します。 難しい画像については、OCR画像DPI最適化ガイドが最適な解像度を達成するのに役立ちます。 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処理を画像の特定の部分に集中させることができ、特定の領域のテキストのみが必要な場合に精度とパフォーマンスを向上させることができます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 5,384,824 | バージョン: 2026.2 リリース NuGet 無料版 総ダウンロード数: 5,384,824 ライセンスを見る