IRONOCRの使い方 C#で画像からテキストを読む方法 Kannapat Udonpant 更新日:9月 1, 2025 IronOCR をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる ジェミニで開く このページについてGeminiに問い合わせる 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る BlazorフレームワークはASP.NETチームによって構築されており、JavaScriptの代わりにHTMLとC#を使用してインタラクティブなUIウェブアプリケーションを開発するために使用されます。 BlazorはWebAssemblyを使用してウェブブラウザで直接C#コードを実行します。 これにより、ロジックを備えたコンポーネントを簡単に構築・開発し、繰り返し再利用することができます。 これは、C#でUIを構築するための開発者の間で人気のあるフレームワークです。 この記事では、IronOCRを使用して画像ファイルからテキストを読み取るためのBlazorサーバーアプリを作成します。 Blazorで光学文字認識を使用して画像からテキストを読み取るには? 前提条件 最新バージョンのVisual Studioを用意してください。 このリンクからダウンロードできます。 ASP.NETとWeb開発のワークロード。 Visual Studioをインストールする際、このプロジェクトに必要なため、ASP.NETとWeb開発のワークロードを選択してインストールしてください。 IronOCR C#ライブラリ。 画像データを機械が読み取れるテキストに変換するために、IronOCRを使用します。 IronOCRパッケージの.DLLファイルをIronのウェブサイトから直接ダウンロードするか、NuGetのウェブサイトからダウンロードできます。 IronOCRをダウンロードしてインストールするより便利な方法は、Visual StudioのNuGetパッケージマネージャーからです。 Blazorサーバーアプリを作成する Visual Studioを開き、Blazorサーバーアプリを作成するための手順に従ってください: 新しいプロジェクトを作成をクリックし、リストされたプロジェクトテンプレートから"Blazorサーバーアプリ"を選択します。 Visual Studioでの新しいBlazorサーバーアプリの作成 次に、プロジェクトに適切な名前を付けます。 ここでは、それをBlazorReadTextと命名しています。 Blazorプロジェクトの構成 最後に、追加情報を設定し、作成をクリックします。 長期サポート.NETフレームワークとプロジェクトの追加情報の選択 これでBlazorサーバーアプリが作成されました。 次に、画像データをIronOCRで抽出する前に必要なパッケージをインストールする必要があります。 必要なパッケージの追加 BlazorInputFile 最初のステップはBlazorInputFileパッケージをインストールすることです。 これはBlazorアプリケーション用のコンポーネントで、サーバーに単一または複数のファイルをアップロードするのに使用されます。 このコンポーネントはBlazorアプリケーションのRazorページ上で画像ファイルをアップロードするために使用されます。 ソリューションのNuGetパッケージを管理を開き、BlazorInputFileを検索します。 BlazorInputFileパッケージのインストール プロジェクトのチェックボックスを選択し、インストールをクリックします。 次に、Pagesフォルダーの_Host.cshtmlファイルを開き、次のJavaScriptファイルを追加します。 <script src="_content/BlazorInputFile/inputfile.js"></script> <script src="_content/BlazorInputFile/inputfile.js"></script> HTML ソリューションエクスプローラーから_Host.cshtmlファイルに移動 最後に、_Imports.razorファイルに次のコードを追加します。 @using BlazorInputFile @using BlazorInputFile 'INSTANT VB TODO TASK: The following line uses invalid syntax: '@using BlazorInputFile $vbLabelText $csharpLabel IronOCR IronOCRは様々な形式の画像をスキャンし、読み取るためのC#ライブラリです。 これは125以上の世界各国の言語で画像を操作する機能を提供します。 IronOCRをインストールするには、そのNuGetパッケージマネージャーを開き、IronOCRを検索します。 プロジェクトを選択し、インストールボタンをクリックします。 NuGetパッケージマネージャーでIronOcrパッケージをインストール _Imports.razorファイルにIronOCRの名前空間を追加します。 @using IronOCR @using IronOCR 'INSTANT VB TODO TASK: The following line uses invalid syntax: '@using IronOCR $vbLabelText $csharpLabel Blazor UIコンポーネントの作成 コンポーネントは動的な振る舞いを示すためのビジネスロジックを持ったユーザーインターフェースを表現します。 BlazorはRazorコンポーネントを使用してアプリを構築します。これらのコンポーネントはネスト、再利用、プロジェクト間で共有することができます。 デフォルトでは、CounterおよびFetchDataページがアプリケーションに提供されます; 簡潔にするためにそれらを削除します。 BlazorReadTextアプリケーションのpagesフォルダーを右クリックし、追加 > Razorコンポーネントを選択します。 Razorコンポーネントが見つからない場合は、新しいアイテムをクリックし、C#コンポーネントから"Razorコンポーネント"を選択します。 コンポーネントに"OCR.razor"という名前を付け、追加をクリックします。 新しいRazorコンポーネントの追加 ベストプラクティスは、このRazorページのコードを別のクラスに分けることです。 再度、ページフォルダを右クリックし、追加 > クラスを選択します。 このクラスにはページと同じ名前を付けて、追加をクリックします。 Blazorは賢いフレームワークで、このクラスを名前が同じページにタグ付けします。 OCR.razor RazorコンポーネントのOCR.razor.csコードファイルを作成する では、実際のコードの実装に進み、IronOCRを使用して画像データを読み取ります。 画像データを読み取るためのBlazor OCR.razor UIコンポーネントのソースコード 画像内のテキストを認識するには、画像をアップロードし、それをバイナリデータに変換してから、IronOCRメソッドを適用してテキストを抽出します。 OCR.razor.csクラスを開き、次の例のソースコードを書きます: using BlazorInputFile; using Microsoft.AspNetCore.Components; using IronOcr; using System.IO; using System.Linq; using System.Threading.Tasks; namespace BlazorReadText.Pages { public class OCRModel : ComponentBase { // Holds the extracted text from the image protected string imageText; // Holds the base64 string preview of the image protected string imagePreview; // Byte array to store uploaded image data private byte[] imageFileBytes; // Default status message for file upload const string DefaultStatus = "Maximum size allowed for the image is 4 MB"; protected string status = DefaultStatus; // Maximum file size allowed (4MB) const int MaxFileSize = 4 * 1024 * 1024; // Method to handle image preview and size/type validation protected async Task ViewImage(IFileListEntry[] files) { var file = files.FirstOrDefault(); if (file == null) { return; } if (file.Size > MaxFileSize) { status = $"The file size is {file.Size} bytes, which exceeds the allowed limit of {MaxFileSize} bytes."; return; } if (!file.Type.Contains("image")) { status = "Please upload a valid image file."; return; } using (var memoryStream = new MemoryStream()) { await file.Data.CopyToAsync(memoryStream); imageFileBytes = memoryStream.ToArray(); string base64String = Convert.ToBase64String(imageFileBytes, 0, imageFileBytes.Length); imagePreview = $"data:image/png;base64,{base64String}"; status = DefaultStatus; } } // Method to extract text from the uploaded image using IronOCR protected private async Task GetText() { if (imageFileBytes != null) { using (var ocr = new IronTesseract()) using (var input = new OcrInput(imageFileBytes)) { OcrResult result = ocr.Read(input); imageText = result.Text; } } } } } using BlazorInputFile; using Microsoft.AspNetCore.Components; using IronOcr; using System.IO; using System.Linq; using System.Threading.Tasks; namespace BlazorReadText.Pages { public class OCRModel : ComponentBase { // Holds the extracted text from the image protected string imageText; // Holds the base64 string preview of the image protected string imagePreview; // Byte array to store uploaded image data private byte[] imageFileBytes; // Default status message for file upload const string DefaultStatus = "Maximum size allowed for the image is 4 MB"; protected string status = DefaultStatus; // Maximum file size allowed (4MB) const int MaxFileSize = 4 * 1024 * 1024; // Method to handle image preview and size/type validation protected async Task ViewImage(IFileListEntry[] files) { var file = files.FirstOrDefault(); if (file == null) { return; } if (file.Size > MaxFileSize) { status = $"The file size is {file.Size} bytes, which exceeds the allowed limit of {MaxFileSize} bytes."; return; } if (!file.Type.Contains("image")) { status = "Please upload a valid image file."; return; } using (var memoryStream = new MemoryStream()) { await file.Data.CopyToAsync(memoryStream); imageFileBytes = memoryStream.ToArray(); string base64String = Convert.ToBase64String(imageFileBytes, 0, imageFileBytes.Length); imagePreview = $"data:image/png;base64,{base64String}"; status = DefaultStatus; } } // Method to extract text from the uploaded image using IronOCR protected private async Task GetText() { if (imageFileBytes != null) { using (var ocr = new IronTesseract()) using (var input = new OcrInput(imageFileBytes)) { OcrResult result = ocr.Read(input); imageText = result.Text; } } } } } Imports BlazorInputFile Imports Microsoft.AspNetCore.Components Imports IronOcr Imports System.IO Imports System.Linq Imports System.Threading.Tasks Namespace BlazorReadText.Pages Public Class OCRModel Inherits ComponentBase ' Holds the extracted text from the image Protected imageText As String ' Holds the base64 string preview of the image Protected imagePreview As String ' Byte array to store uploaded image data Private imageFileBytes() As Byte ' Default status message for file upload Private Const DefaultStatus As String = "Maximum size allowed for the image is 4 MB" Protected status As String = DefaultStatus ' Maximum file size allowed (4MB) Private Const MaxFileSize As Integer = 4 * 1024 * 1024 ' Method to handle image preview and size/type validation Protected Async Function ViewImage(ByVal files() As IFileListEntry) As Task Dim file = files.FirstOrDefault() If file Is Nothing Then Return End If If file.Size > MaxFileSize Then status = $"The file size is {file.Size} bytes, which exceeds the allowed limit of {MaxFileSize} bytes." Return End If If Not file.Type.Contains("image") Then status = "Please upload a valid image file." Return End If Using memoryStream As New MemoryStream() Await file.Data.CopyToAsync(memoryStream) imageFileBytes = memoryStream.ToArray() Dim base64String As String = Convert.ToBase64String(imageFileBytes, 0, imageFileBytes.Length) imagePreview = $"data:image/png;base64,{base64String}" status = DefaultStatus End Using End Function ' Method to extract text from the uploaded image using IronOCR Private Protected Async Function GetText() As Task If imageFileBytes IsNot Nothing Then Using ocr = New IronTesseract() Using input = New OcrInput(imageFileBytes) Dim result As OcrResult = ocr.Read(input) imageText = result.Text End Using End Using End If End Function End Class End Namespace $vbLabelText $csharpLabel 上記のコードでは: ViewImageメソッドはアップロードされた画像ファイルを扱うために使用されます。ファイルが画像であるかどうかを検証し、サイズが指定された制限を満たしているかどうかを確認します。 ファイルサイズやファイルタイプで問題が発生した場合、if-elseブロックを使用して処理されます。 その後、画像はMemoryStreamにコピーされ、IronOcr.OcrInputがバイナリ形式で画像を受け入れることができるようにバイト配列に変換されます。 GetTextメソッドは入力画像からテキストを抽出するためにIronOCRを利用します。 IronOCRはTesseract 5エンジンを採用し、125以上の言語をサポートしています。 抽出されたテキストは、表示用にimageText変数に格納されます。 ライブラリは追加の設定なしで英語のテキスト画像をサポートしています。 このコード例ページ上で様々な言語の使用についての詳細を学ぶことができます。 BlazorフロントエンドUIコンポーネントのソースコード 次に、アプリケーションのUIを作成します。 OCR.razorファイルを開き、次のコードを書きます: @page "/IronOCR" @inherits OCRModel <h2>Optical Character Recognition (OCR) Using Blazor and IronOCR Software</h2> <div class="row"> <div class="col-md-5"> <textarea disabled class="form-control" rows="10" cols="15">@imageText</textarea> </div> <div class="col-md-5"> <div class="image-container"> <img class="preview-image" width="800" height="500" src=@imagePreview> </div> <BlazorInputFile.InputFile OnChange="@ViewImage" /> <p>@status</p> <hr /> <button class="btn btn-primary btn-lg" @onclick="GetText"> Extract Text </button> </div> </div> 上記のコードにおいて、UIには以下が含まれます: 画像ファイルを選択するための入力ファイルタグ。 画像を表示するための画像タグ。 GetTextメソッドをトリガーするボタン。 画像データから抽出されたテキストを表示するためのテキストエリア。 ナビゲーションメニューへのリンクの追加 最後に、OCR.razorページへのリンクをSharedフォルダー内のNavMenu.razorファイルに追加します: <div class="nav-item px-3"> <NavLink class="nav-link" href="IronOCR"> <span class="oi oi-plus" aria-hidden="true"></span> Read Image Text </NavLink> </div> <div class="nav-item px-3"> <NavLink class="nav-link" href="IronOCR"> <span class="oi oi-plus" aria-hidden="true"></span> Read Image Text </NavLink> </div> HTML 不要なため、CounterとFetchDataへのリンクを削除してください。 これで全て完了し、使用する準備が整いました。 F5を押してアプリケーションを実行します。 フロントエンドは以下のように表示されるはずです: BlazorサーバーアプリのUI 画像をアップロードし、出力を視覚化するためにテキストを抽出しましょう。 アップロードされた画像と抽出されたテキスト 出力されたテキストはきれいで、テキストエリアからコピーすることができます。 まとめ この記事では、Blazorサーバーアプリケーションで背後にコードがあるBlazor UIコンポーネントを作成し、画像からテキストを読み取る方法を示しました。 IronOCRは、あらゆるC#ベースのアプリケーションでテキストを抽出するための多様なライブラリです。 最新の.NETフレームワークをサポートし、Razorアプリケーションともうまく連携できます。 IronOCRはWindows、Linux、macOS、Docker、Azure、AWS、およびMAUIでサポートされているクロスプラットフォームライブラリです。 また、IronOCRは、Tesseractからのベストな結果を用いて高精度を提供し、追加の設定を必要としません。 マルチページフレームの TIFF 、 PDF ファイル、およびすべての一般的な画像形式をサポートします。 画像からバーコードの値を読み取ることも可能です。 また、無料トライアルでIronOCRを無料で試すことができます。 ソフトウェアライブラリはここからダウンロードできます。 よくある質問 Blazor Serverアプリで画像からテキストをどうやって読み取ることができますか? Blazor Serverアプリで画像からテキストを読み取るには、まずBlazorInputFileパッケージを使用して画像をアップロードし、その後IronOCRのGetTextメソッドを使用して画像からテキストを抽出します。 Blazor ServerアプリをOCR用に設定するにはどのような手順が必要ですか? Blazor ServerアプリをOCR用に設定するには、ASP.NETおよびWeb開発ワークロード付きのVisual Studioを用意します。その後、新しいBlazor Serverアプリを作成し、NuGetパッケージマネージャーを通じてIronOCRをインストールします。 Blazorアプリケーションでファイルアップロードをどう処理しますか? Blazorアプリケーションでのファイルのアップロードは、BlazorInputFileパッケージを使用して管理できます。このパッケージは、OCR用に画像を処理するために必要な単一または複数のファイルのアップロードを可能にします。 IronOCRはテキスト抽出で複数の言語をサポートしていますか? はい、IronOCRはテキスト抽出で複数の言語をサポートしています。これは高精度な画像からのテキスト認識を可能にするTesseract 5エンジンを使用しています。 クロスプラットフォームアプリケーションでIronOCRを使用する利点は何ですか? IronOCRは、Windows、Linux、macOS、Docker、Azure、AWS、MAUIなどと互換性があるため、クロスプラットフォームアプリケーションにおいていくつかの利点を提供します。これは多様な環境でのOCRにとって柔軟な選択肢となります。 BlazorコンポーネントでIronOCRを使用して画像からテキストをどう抽出しますか? Blazorコンポーネントで画像からテキストを抽出するには、まず画像ファイルをアップロードし、その後OCR.razor.csクラスを使用してIronOCRのGetTextメソッドを呼び出し、画像を処理してテキストを抽出します。 OCR機能のためのBlazor UIの主なコンポーネントは何ですか? OCR機能のためのBlazor UIには、画像選択のための入力ファイルタグ、プレビュー用の画像タグ、OCRプロセスをトリガーするボタン、および抽出されたテキストを表示するテキストエリアが含まれます。 BlazorアプリケーションでOCRページにどうナビゲートしますか? BlazorアプリケーションでOCRページにナビゲートするには、SharedフォルダにあるNavMenu.razorファイルにnavアイテムを追加し、OCRページを指すNavLinkを含めます。 Kannapat Udonpant 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。 関連する記事 公開日 12月 18, 2025 C# PDF フォームフィールドを読む:プログラムでフォームデータを抽出する IronPDFを使用してC#でPDFフォームフィールドを読み取る方法を学びます。記入可能PDFからのテキスト、チェックボックス、ドロップダウンなどを簡単なコード例で抽出します。 詳しく読む 公開日 12月 18, 2025 C# PDFから画像を抽出する:完全開発者ガイド IronPDFの強力なメソッドを使用してC#でPDFドキュメントから画像を抽出する方法を学びます。コード例を含む.NET開発者向けの完全なガイドです。 詳しく読む 公開日 12月 18, 2025 C# PDFから画像への変換:完全な開発者ガイド IronPDFを使用してC#でPDFドキュメントを画像に変換する方法を学びます。JPG、PNG、およびTIFF変換のコード例を含むステップバイステップガイド。 詳しく読む 請求書OCR API(開発者チュートリアル)OCRレシートデータ抽出(...
公開日 12月 18, 2025 C# PDF フォームフィールドを読む:プログラムでフォームデータを抽出する IronPDFを使用してC#でPDFフォームフィールドを読み取る方法を学びます。記入可能PDFからのテキスト、チェックボックス、ドロップダウンなどを簡単なコード例で抽出します。 詳しく読む
公開日 12月 18, 2025 C# PDFから画像を抽出する:完全開発者ガイド IronPDFの強力なメソッドを使用してC#でPDFドキュメントから画像を抽出する方法を学びます。コード例を含む.NET開発者向けの完全なガイドです。 詳しく読む
公開日 12月 18, 2025 C# PDFから画像への変換:完全な開発者ガイド IronPDFを使用してC#でPDFドキュメントを画像に変換する方法を学びます。JPG、PNG、およびTIFF変換のコード例を含むステップバイステップガイド。 詳しく読む