IRONSOFTWAREHOME

OCRのためにC#でストリームから読み取る方法

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronOCR は、C#でストリームからの画像データを直接読み取り、それを OcrInput または OcrImageInput コンストラクターに渡すことでファイルをディスクに保存することなく効率的なOCRプロセスを可能にします。

ストリームとは、読み書きが可能なバイナリ情報の連続的な流れのことです。 プログラミングでは、ストリームは、管理可能なチャンクで処理することにより、メモリには大きすぎるデータを効率的に処理します。

IronOCRのインポートメソッドは画像データストリームを直接受け取ります。 ストリーム・データをインポート・メソッドに渡すと、必要なすべてのステップが自動的に処理されます。 高度なシナリオのために、さまざまな入力形式を準備するための広範なオプションを提供するOcrInput クラスを検討してください。

クイックスタート: 数秒でストリームをOCR入力に使用する

この例は、System.IO.Stream を IronOCR に入力して、ファイルパスを省略し、認識されたテキストを最小限のコードで取得することによって即時 OCR を示します。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

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

    using var input = new IronOcr.OcrInput(stream);
    var result = new IronOcr.IronTesseract().Read(input);
    C#
  3. 3実際の環境でテストするためにデプロイする

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

IronOCRでストリームを読むには?

まず、OCR を実行するために IronTesseract クラスをインスタンス化します。 画像ファイルをインポートするために AnyBitmapFromFile メソッドを使用します。この AnyBitmap オブジェクトは画像データをストリームに変換します。 次に、using ステートメントを使用して OcrImageInput オブジェクトを作成し、画像ストリームを GetStream メソッドで渡します。 最後に、Read メソッドを使用して OCR を実行します。

using IronOcr;
using IronSoftware.Drawing;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Read image file to AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Import image stream
using var imageInput = new OcrImageInput(anyBitmap.GetStream());
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

ストリームベースOCRは、画像のアップロードを受け取るウェブアプリケーション、データベースからの画像を処理するアプリケーション、またはディスクに書き込まれるべきでない一時的なデータを処理するアプリケーションに役立ちます。 ストリームアプローチは、System.Drawing オブジェクトや他の画像操作ライブラリとシームレスに統合されます。

なぜ OCR にストリームを使用するのですか?

ストリームを使用することで、.NET 開発者にはいくつかの利点があります:

  1. メモリ効率: ファイル全体をメモリにロードせずにチャンク単位でデータを処理します
  2. セキュリティ: ディスクに一時ファイルを作成せずに機密文書を処理します
  3. パフォーマンス: ファイルシステム操作からI/Oのオーバーヘッドを排除します
  4. 柔軟性: ウェブアップロード、データベースBLOB、およびインメモリ変換と連携します

複数ページのドキュメントの処理やPDFストリームの処理のために、IronOCRは同じシンプルなAPIを維持し、堅牢なパフォーマンスを提供します。 スキャンされた文書を扱う場合、ストリーム処理によってスキャンされた文書を効率的に読むためにIronOCRの機能を活用することもできます。

ストリーム OCR のスキャン領域を指定するにはどうすればよいですか?

大きな画像でのパフォーマンスを向上させ、特定の領域から特定の読み取りを得るために、CropRectangle クラスを利用します。 OcrImageInput コンストラクターは、画像ドキュメントのどの領域を読み取るかを指定できる CropRectangle オブジェクトを2つ目のパラメーターとして受け入れます。 以下のコード例では、章番号とタイトル領域のみを読み取るように指定しています。

using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Read image file to AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);

// Add image
using var imageInput = new OcrImageInput(anyBitmap.GetStream(), ContentArea: scanRegion);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output the result to console
Console.WriteLine(ocrResult.Text);

このテクニックは、画像の特定の領域をOCRする必要がある場合や、テキストが予測可能な場所に表示される構造化ドキュメントを扱う場合に特に役立ちます。 テーブルや構造化データを含むより複雑なシナリオについては、ドキュメント内のテーブルを読む方法を調べてください。

スキャン領域は出力でどのように見えますか?

OCRデモ:Photo Viewerのドキュメントと、デバッグコンソールに表示された"Chapter Eight The Deathday Party"という抽出テキスト

どのような高度なストリーム処理技術を使用できますか?

ストリームを使用する場合は、IronOCRの追加機能を活用して認識精度を高めてください。 画像最適化フィルターは、OCR処理の前にストリームデータに直接適用することができます:

using IronOcr;
using IronSoftware.Drawing;
using System.IO;

// Process stream with filters
public string ProcessStreamWithFilters(Stream imageStream)
{
    IronTesseract ocrTesseract = new IronTesseract();
    
    // Configure for better accuracy
    ocrTesseract.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
    ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
    
    using var input = new OcrImageInput(imageStream);
    
    // Apply preprocessing filters
    input.Deskew();
    input.DeNoise();
    input.Sharpen();
    
    var result = ocrTesseract.Read(input);
    return result.Text;
}

画像処理を強化するには、フィルタ ウィザードを使用して、特定のドキュメント タイプに最適な前処理ステップを自動的に決定することを検討してください。さらに、ストリーム内の回転した画像や傾いた画像を処理する場合、画像の向きを修正する機能を使用すると、OCR 精度を大幅に向上させることができます。

異なるストリームソースで作業するにはどうすればよいですか?

IronOCRは様々なストリームソースをシームレスに処理します。 ウェブフォームからのアップロード処理、データベースからの画像取得、フォーマット間の変換など、APIは一貫性を保っています:

// From MemoryStream
byte[] imageBytes = GetImageBytesFromDatabase();
using var memoryStream = new MemoryStream(imageBytes);
using var input = new OcrImageInput(memoryStream);

// From FileStream
using var fileStream = new FileStream("document.png", FileMode.Open);
using var input2 = new OcrImageInput(fileStream);

// From network stream
using var webClient = new WebClient();
using var networkStream = webClient.OpenRead("https://example.com/image.jpg");
using var input3 = new OcrImageInput(networkStream);

最適な結果を得るためには、低解像度のストリームで作業する場合、DPI設定を調整することを検討してください。 IronOCRは自動的にDPI検出を行いますが、手動で設定することで、特定のユースケースの精度を向上させることができます。 マルチページ ドキュメントを扱う場合は、ストリーム処理によって マルチページ TIFF および GIF ファイルを処理することを検討してください。

ストリームからの OCR 結果をどのように扱えばよいですか?

ストリームを処理した後、IronOCRは単純なテキスト抽出を超えたリッチな結果オブジェクトを提供します。 認識されたテキストに関する詳細情報を含むOcrResult クラス: 包括スコア、位置、構造:

// Process stream and analyze results
using var input = new OcrImageInput(stream);
var result = new IronTesseract().Read(input);

// Access detailed results
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber} Confidence: {page.Confidence}%");
    
    foreach (var paragraph in page.Paragraphs)
    {
        Console.WriteLine($"Paragraph: {paragraph.Text}");
        Console.WriteLine($"Location: X={paragraph.X}, Y={paragraph.Y}");
    }
}

// Export results
string text = result.Text;
string searchablePdf = result.SaveAsSearchablePdf("output.pdf");
string hocrHtml = result.SaveAsHocrFile("output.html");
C#

結果オブジェクトは、検索可能なPDFhOCRのHTMLフォーマットにエクスポートするメソッドも提供しており、ストリーム入力から検索可能なドキュメントアーカイブを簡単に作成できます。 デバッグのために、highlight texts featureを使って、IronOcrが画像から何を検出したかを視覚化することができます。

どのようなパフォーマンスを考慮すべきか

複数のストリームを処理する場合や、高スループットの OCR ソリューションを実装する場合は、以下の最適化戦略を検討してください:

  1. IronTesseract インスタンスを再利用する: 1つのインスタンスを作成し、複数の操作にわたって再利用します
  2. 進行状況のトラッキングを実装: 大規模ストリームの場合、進行状況のトラッキングを使用して処理ステータスを監視します
  3. 並行処理: IronOCR は、複数のストリームの同時処理をサポートします
  4. 画像品質を最適化: ストリームを前処理して最適な解像度と明瞭さを確保します

パフォーマンスを最大化するために、高速 OCR 設定オプションを検討し、バッチ処理用に マルチスレッド処理の実装を検討してください。 時間に敏感なアプリケーションで作業する場合、タイムアウトを理解することで、長時間実行される OCR 操作を効果的に管理することができます。

一般的なストリームの問題をトラブルシューティングするには?

ストリームを扱う場合、特定の課題に遭遇する可能性があります。 よくあるシナリオの解決策をご紹介します:

  • ストリーム位置: 常に IronOCR に渡す前にストリーム位置を 0 にリセットします
  • ディスポージャル: リソースの適切なクリーンアップを保証するために using ステートメントを使用します
  • フォーマットサポート: IronOCRは、ストリームを通じてJPEG、PNG、TIFF、BMPなどのさまざまな画像フォーマットをサポートします
  • メモリ管理: 大規模なストリームの場合、チャンク処理またはストリーミングアプローチを考慮してください

複雑な文書や標準的な OCR では満足のいく結果が得られない場合、コンピューター ビジョン機能を使用すると、テキストをより正確に検索して抽出することができます。 さらに、低品質ストリームを扱う場合は、認識率を大幅に向上させる前処理テクニックについて、低品質スキャンの修正のガイドを参照してください。

ストリームやその他の入力メソッドの詳細については、包括的なハウツーガイドコード例を参照してください。

よくある質問

画像データをディスクに保存せずに、OCRを実行するにはどうすればよいですか?

IronOCRでは、OcrInputまたはOcrImageInputコンストラクタに画像ストリームを渡すことで、画像ストリームを直接処理することができます。これは一時ファイルを作成することなく効率的なOCR処理を可能にし、ウェブアップロードやデータベースのBLOB、あるいはディスクに触れるべきでない機密文書を扱うのに理想的です。

OCR 処理の入力として使用できるストリームの種類は?

IronOCRは画像データを含むあらゆるSystem.IO.Streamを受け入れます。これには、ウェブアップロードからのメモリストリーム、データベースのBLOBフィールドからのストリーム、画像操作ライブラリから作成されたストリームが含まれます。OcrInputまたはOcrImageInputにストリームを渡すと、ライブラリは必要なすべての変換ステップを自動的に処理します。

C#でストリームにOCRを実行する最も簡単な方法は何ですか?

最も手っ取り早い方法は、ストリームでOcrInputオブジェクトを作成し、Readメソッドを呼び出すことです: 'using var input = new IronOcr.OcrInput(stream); var result = new IronOcr.IronTesseract().Read(input);'.この最小限のコードはOCRを実行し、認識されたテキストを即座に返します。

OCRにファイルパスの代わりにストリームを使用するのはなぜですか?

IronOCRによるストリームベースOCRはいくつかの利点を提供します:データをチャンク単位で処理することによるメモリ効率、ディスク上の一時ファイルを回避することによるセキュリティの強化、ファイルI/Oのオーバーヘッドを排除することによるパフォーマンスの向上、ウェブアップロードやデータベースのBLOBを扱う際の柔軟性などです。

画像ストリームの特定の領域を指定して読み取ることはできますか?

はい、IronOCRではストリームを処理する際、クロップ領域を指定して読み取り領域を定義することができます。この機能により、文書全体を処理することなく、画像の特定の部分にOCRを集中させることができ、速度と精度の両方が向上します。

ストリーム処理は、他の画像操作ライブラリとどのように統合されていますか?

IronOCRのストリーム・アプローチは、System.Drawingオブジェクトや他 for .NET画像操作ライブラリとシームレスに統合されています。AnyBitmapクラスを使用して、GetStreamメソッドを使用して画像をストリームに変換することができ、OCRを他の画像処理ワークフローと簡単に組み合わせることができます。

What should I consider for optimal performance with stream-based OCR?

For optimal performance, reuse `IronTesseract` instances, implement progress tracking, process in parallel, and optimize image quality before processing. These strategies can enhance throughput and efficiency for high-volume OCR tasks.

What are common troubleshooting tips for using streams in IronOCR?

Common troubleshooting tips include ensuring stream position is reset to `0` before processing, using `using` statements for resource cleanup, and confirming that all supported image formats are correctly handled.

How does IronOCR improve OCR for low-quality streams?

IronOCR offers preprocessing techniques to enhance OCR on low-quality streams. By applying filters and other image optimizations, recognition rates can significantly improve, especially for documents with poor scan quality.

Can IronOCR process multiple page documents using streams?

Yes, IronOCR can efficiently process multiple page documents through stream handling, maintaining a user-friendly API and offering robust performance suitable for PDF streams and other multi-page formats.

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 6,236,385バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronOCR」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

または、Windowsインストーラーをこちらからダウンロード。

  1. IronOCRをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍します
  2. Visual Studioソリューションエクスプローラーで、リファレンスを右クリックします。「参照」、「IronOCR.dll」を選択

$999からのライセンス

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。