C# における OCR 処理のための System Drawing 画像の使用方法

C# で System.Drawing オブジェクトを読み取る方法

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

System.Drawing.Bitmapは、ビットマップ イメージの操作に使用される .NET Framework のクラスです。 ビットマップ イメージを作成、操作、表示するためのメソッドとプロパティを提供します。

System.Drawing.Imageは、.NET Framework 内のすべての GDI+ イメージ オブジェクトの基本クラスです。 これは、 System.Drawing.Bitmapを含むさまざまな画像タイプの親クラスです。

IronSoftware.Drawing.AnyBitmapは、もともと Iron Software によって開発されたオープンソース ライブラリであるIronDrawingのビットマップ クラスです。 これは、C# ソフトウェア エンジニアが Windows、macOS、Linux プラットフォーム上の .NET プロジェクトでSystem.Drawing.Commonを置き換えるのに役立ちます。

クイックスタート: System.Drawing.Bitmap からテキストを読み取る

たった 1 つの簡単なステートメントでIronTesseractを作成し、 OcrImageInputでラップされたSystem.Drawing.Bitmapを入力してすべてのテキストを抽出します。 このクイックスタートの例では、最小限のセットアップで IronOCR がいかに簡単に画像を読みやすいテキストに変換するかを示します。

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

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

    PM > Install-Package IronOcr

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

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

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


System.Drawing.Bitmap の例を読む

まず、OCR を実行するためにIronTesseractクラスをインスタンス化します。 さまざまなメソッドのいずれかからSystem.Drawing.Bitmapを作成します。 コード例では、ファイル パスを使用することにしました。

次に、 usingステートメントを使用してOcrImageInputオブジェクトを作成し、 System.Drawing.Bitmapオブジェクトからの画像を渡します。 最後に、 Readメソッドを使用して OCR を実行します。

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-bitmap.cs
using IronOcr;
using System.Drawing;

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

// Read image file to Bitmap
Bitmap bitmap = new Bitmap("Potter.tiff");

// Import System.Drawing.Bitmap
using var imageInput = new OcrImageInput(bitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Read image file to Bitmap
Private bitmap As New Bitmap("Potter.tiff")

' Import System.Drawing.Bitmap
Private imageInput = New OcrImageInput(bitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

System.Drawing.Image の例を読む

System.Drawing.Imageからの読み取りは、Image を使用してOcrImageInputオブジェクトを作成し、 Readメソッドを使用して標準の OCR プロセスを実行するだけです。

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-image.cs
using IronOcr;
using Image = System.Drawing.Image;

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

// Open image file as Image
Image image = Image.FromFile("Potter.tiff");

// Import System.Drawing.Image
using var imageInput = new OcrImageInput(image);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports Image = System.Drawing.Image

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as Image
Private image As Image = Image.FromFile("Potter.tiff")

' Import System.Drawing.Image
Private imageInput = New OcrImageInput(image)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Iron Software.Drawing.AnyBitmap の例を読む

同様に、 AnyBitmapオブジェクトを作成または取得した後、 OcrImageInputクラスを構築できます。 コンストラクターは、データをインポートするために必要なすべての手順を処理します。 以下のコード例でこれを示します。

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-anybitmap.cs
using IronOcr;
using IronSoftware.Drawing;

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

// Open image file as AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Import IronSoftware.Drawing.AnyBitmap
using var imageInput = new OcrImageInput(anyBitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports IronSoftware.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")

' Import IronSoftware.Drawing.AnyBitmap
Private imageInput = New OcrImageInput(anyBitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

スキャン領域を指定

OcrImageInputクラスの構築では、スキャンする領域を指定できます。 これにより、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結果

特定の地域を読む

よくある質問

C# でビットマップ画像からテキストを抽出するにはどうしたらよいですか?

まず IronTesseract クラスのインスタンスを作成し、次に System.Drawing.Bitmap を作成して OcrImageInput オブジェクトに渡し、最後に Read メソッドを使用してテキストを抽出できます。

OCR タスクのために System.Drawing オブジェクトから読み取るためのステップは何ですか?

IronOCR を使用して System.Drawing オブジェクトから読み取るには、ライブラリをダウンロードし、System.Drawing オブジェクトを取得し、OcrImageInput クラスを構築し、必要に応じてクロップ領域を定義します。Linux および macOS でのクロスプラットフォーム互換性のために AnyBitmap を使用します。

System.Drawing.Image に対してどのように OCR を実行しますか?

System.Drawing.Image に対して OCR を実行するには、画像と共に OcrImageInput オブジェクトを作成し、IronOCR で Read メソッドを実行します。

クロスプラットフォーム プロジェクトで AnyBitmap を使用する利点は何ですか?

Iron Software.Drawing.AnyBitmap は、System.Drawing.Common をクロスプラットフォーム ソリューションに置き換えることで、Windows、macOS、および Linux での OCR 機能を可能にします。

スキャン領域は OCR パフォーマンスをどのように向上させますか?

OcrImageInput クラスで特定のスキャン領域を定義することで、関連する領域に OCR 努力を集中させることができ、パフォーマンスと正確性を大幅に向上させることができます。

IronOCR は Linux と macOS に対応していますか?

はい、IronOCR は Iron Software.Drawing.AnyBitmap を使用することで Linux と macOS に対応しており、OCR タスクのためのクロスプラットフォーム ソリューションを提供します。

OCR のための画像内でスキャンする領域をどのように指定しますか?

IronOCR では、OcrImageInput クラスで座標と寸法を設定してスキャン領域を指定し、関連する画像部分に集中することにより OCR パフォーマンスを向上させます。

.NET OCR プロジェクトで画像を処理するために重要なクラスは何ですか?

.NET OCR プロジェクトでは、System.Drawing.BitmapSystem.Drawing.Image、および Iron Software.Drawing.AnyBitmap などのクラスが画像処理に重要です。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

レビュー済み
Jeff Fritz
Jeffrey T. Fritz
プリンシパルプログラムマネージャー - .NETコミュニティチーム
Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。
準備はできましたか?
Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース