IronOCR ハウツー スクリーンショットを読む C#でIronOCRを使ってスクリーンショットを読む方法</#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のReadScreenshotメソッドは、PNG、JPG、BMPなどの一般的なファイル形式をサポートしながら、様々な寸法やノイズの問題を処理し、効率的にスクリーンショットからテキストを抽出します。 スクリーンショットは、情報を共有し、重要なデータをキャプチャする迅速な方法を提供します。 しかし、スクリーンショットからテキストを抽出することは、さまざまなサイズやノイズのために困難であることが判明しています。このため、スクリーンショットはOCRにとって難しい媒体となっています。 IronOCRはReadScreenshotのような特殊なメソッドを提供することでこの問題を解決します。 この方法は、一般的なファイル形式を受け入れながら、スクリーンショットを読み取り、そこから情報を抽出するために最適化されています。 標準的な OCR メソッドとは異なり、このメソッドは、自動ノイズ除去やコントラスト強調など、スクリーンショットのコンテンツに合わせた特定の前処理最適化を適用します。 この機能を使用するには、IronOcr.Extension.AdvancedScanパッケージをインストールしてください。 この拡張機能は、特に最新のアプリケーションのUI要素、システムフォント、アンチエイリアステキストに対して、スクリーンショットのテキスト認識精度を高める高度なコンピュータビジョン機能を提供します。 クイックスタート: スクリーンショットからテキストを読み取る スクリーンショットをOcrInputにロードし、ReadScreenShotを呼び出すと、OcrPhotoResultを通して抽出されたテキスト、信頼度スコア、テキスト領域にすぐにアクセスできます。 最小限のセットアップで、画像を使用可能なテキストに変換する最速の方法です。 今すぐ NuGet で PDF を作成してみましょう: NuGet パッケージ マネージャーを使用して IronOCR をインストールします PM > Install-Package IronOcr このコード スニペットをコピーして実行します。 OcrPhotoResult result = new IronTesseract().ReadScreenShot(new OcrInput().LoadImage("screenshot.png")); 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronOCR を使い始めましょう 30日間無料トライアル このガイドでは、IronOCRをスクリーンショットのテキスト認識に使用する方法を、例と結果オブジェクトのプロパティを通して説明します。 特定地域の処理、多言語コンテンツの処理、バッチ処理のパフォーマンスの最適化など、高度なシナリオを探ります。 ### 最小限のワークフロー(5ステップ) スクリーンショットを読むためのC#ライブラリをダウンロードする 処理のためにスクリーンショット画像をインポートする ReadScreenshotメソッドを使用して画像からテキストを抽出します OcrPhotoResultプロパティを使用して抽出されたデータを取得し、さらに処理します。 必要に応じて抽出したテキストを保存またはエクスポートする ReadScreenshotを使用してスクリーンショットからテキストを抽出するには? IronOCRでスクリーンショットを読むには、ReadScreenshot<//code>メソッドを使用します。このメソッドはOcrInput<//code>をパラメータとして受け取ります。 このメソッドは、ライブラリの標準のReadメソッドよりもスクリーンショットに最適化されています。 最適化には、UI要素の自動検出、アンチエイリアスフォントの処理の改善、異なるオペレーティングシステム間でのシステムフォントの認識の改善などが含まれます。 ブラケットオープン この方法は現在、英語、中国語、日本語、韓国語、ラテン文字ベースのアルファベットなどの言語で機能します。 .NET Framework で詳細スキャンを使用するには、プロジェクトを x64 アーキテクチャで実行する必要があります。 ブラケットを閉じる どのようなスクリーンショットが最適ですか? 以下はコード例の入力です。 異なるフォントやサイズのテキストを混在させることで、この方法の汎用性を実証しています。 ReadScreenshotメソッドは、認識を得意としています: システムUIフォント(Windows、macOS、Linux) 最新アプリケーションのアンチエイリアステキスト フォントサイズとスタイルの混在 複雑な背景に重ねられたテキスト コンソール出力とターミナルのスクリーンショット さまざまなウェブフォントを使用したブラウザコンテンツ 最適な結果を得るためには、圧縮せずにネイティブ解像度でスクリーンショットをキャプチャしてください。 このメソッドでは、さまざまな画像形式を扱いますが、PNG形式は可逆圧縮のため、テキストの鮮明さを最もよく保ちます。 C#OCRライブラリのホームページは、プラットフォームの互換性とテキスト認識のための主要な機能を示しています。 どのように ReadScreenshot メソッドを実装しますか? :path=/static-assets/ocr/content-code-examples/how-to/read-screenshot-read-screenshot.cs using IronOcr; using System; using System.Linq; // Instantiate OCR engine var ocr = new IronTesseract(); using var inputScreenshot = new OcrInput(); inputScreenshot.LoadImage("screenshotOCR.png"); // Perform OCR OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot); // Output screenshot information Console.WriteLine(result.Text); Console.WriteLine(result.TextRegions.First().Region.X); Console.WriteLine(result.TextRegions.Last().Region.Width); Console.WriteLine(result.Confidence); Imports IronOcr Imports System Imports System.Linq ' Instantiate OCR engine Private ocr = New IronTesseract() Private inputScreenshot = New OcrInput() inputScreenshot.LoadImage("screenshotOCR.png") ' Perform OCR Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot) ' Output screenshot information Console.WriteLine(result.Text) Console.WriteLine(result.TextRegions.First().Region.X) Console.WriteLine(result.TextRegions.Last().Region.Width) Console.WriteLine(result.Confidence) $vbLabelText $csharpLabel 複雑なシナリオの場合は、前処理を追加してスクリーンショットの読み取り処理を強化します: using IronOcr; using System; // Configure OCR engine with specific settings for screenshots var ocr = new IronTesseract() { // Set language for better accuracy with non-English content Language = OcrLanguage.English, // Configure for screen-resolution images Configuration = new TesseractConfiguration() { PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, // Enable whitelist for specific characters if needed WhiteListCharacters = null } }; using var inputScreenshot = new OcrInput(); // Load screenshot with specific DPI setting for consistency inputScreenshot.LoadImage("screenshotOCR.png", 96); // Standard screen DPI // Apply preprocessing for better accuracy inputScreenshot.DeNoise(); // Remove screenshot artifacts inputScreenshot.Sharpen(); // Enhance text edges // Perform OCR with error handling try { OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot); // Process results with confidence threshold if (result.Confidence > 0.8) { Console.WriteLine($"High confidence text extraction: {result.Text}"); } else { Console.WriteLine("Low confidence - consider image preprocessing"); } } catch (Exception ex) { Console.WriteLine($"OCR Error: {ex.Message}"); } using IronOcr; using System; // Configure OCR engine with specific settings for screenshots var ocr = new IronTesseract() { // Set language for better accuracy with non-English content Language = OcrLanguage.English, // Configure for screen-resolution images Configuration = new TesseractConfiguration() { PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, // Enable whitelist for specific characters if needed WhiteListCharacters = null } }; using var inputScreenshot = new OcrInput(); // Load screenshot with specific DPI setting for consistency inputScreenshot.LoadImage("screenshotOCR.png", 96); // Standard screen DPI // Apply preprocessing for better accuracy inputScreenshot.DeNoise(); // Remove screenshot artifacts inputScreenshot.Sharpen(); // Enhance text edges // Perform OCR with error handling try { OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot); // Process results with confidence threshold if (result.Confidence > 0.8) { Console.WriteLine($"High confidence text extraction: {result.Text}"); } else { Console.WriteLine("Low confidence - consider image preprocessing"); } } catch (Exception ex) { Console.WriteLine($"OCR Error: {ex.Message}"); } Imports IronOcr Imports System ' Configure OCR engine with specific settings for screenshots Dim ocr As New IronTesseract() With { ' Set language for better accuracy with non-English content .Language = OcrLanguage.English, ' Configure for screen-resolution images .Configuration = New TesseractConfiguration() With { .PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, ' Enable whitelist for specific characters if needed .WhiteListCharacters = Nothing } } Using inputScreenshot As New OcrInput() ' Load screenshot with specific DPI setting for consistency inputScreenshot.LoadImage("screenshotOCR.png", 96) ' Standard screen DPI ' Apply preprocessing for better accuracy inputScreenshot.DeNoise() ' Remove screenshot artifacts inputScreenshot.Sharpen() ' Enhance text edges ' Perform OCR with error handling Try Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot) ' Process results with confidence threshold If result.Confidence > 0.8 Then Console.WriteLine($"High confidence text extraction: {result.Text}") Else Console.WriteLine("Low confidence - consider image preprocessing") End If Catch ex As Exception Console.WriteLine($"OCR Error: {ex.Message}") End Try End Using $vbLabelText $csharpLabel OcrPhotoResultはどのようなプロパティを返しますか? バージョン2024.9、精度スコア0.937のIronOCRライブラリの詳細を表示するVisual Studioデバッガ。 コンソール出力は、スクリーンショットからのすべてのテキストインスタンスの抽出を示しています。 OcrPhotoResultのプロパティと、それらを効果的に活用する方法を探ってみましょう: Text : OCR 入力から抽出されたテキスト。 このプロパティには、認識されたすべてのテキストが1つの文字列として含まれ、改行とスペーシングを含む元のレイアウトが保持されます。 信頼度:0から1までのスケールで統計的精度の信頼度を示す二重プロパティで、1は最高の信頼度を表します。 アプリケーションの品質管理を実施するために使用してください。 TextRegion:TextRegionオブジェクトの配列で、スクリーンショット上でテキストが見つかった領域を返すプロパティを保持します。 デフォルトでは、すべてのTextRegionはIronOCRモデルから派生したRectangleクラスです。 x 座標と y 座標に加え、矩形の高さと幅を含みます。 TextRegionsを使用すると、次のことが可能になります: 特定のスクリーンショット領域からテキストを抽出 UI要素の位置の特定 テキスト位置に基づいてクリック可能なオーバーレイを作成 地域固有の OCR 処理を実装します。 以下は、個々のテキスト領域を処理する例です: using IronOcr; using System; using System.Linq; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("screenshot.png"); OcrPhotoResult result = ocr.ReadScreenShot(input); // Process each text region individually foreach (var region in result.TextRegions) { Console.WriteLine($"Text: {region.Text}"); Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}"); Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}"); Console.WriteLine($"Confidence: {region.Confidence:P2}"); Console.WriteLine("---"); } // Find specific UI elements by text content var buttonRegion = result.TextRegions .FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase)); if (buttonRegion != null) { Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}"); } using IronOcr; using System; using System.Linq; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("screenshot.png"); OcrPhotoResult result = ocr.ReadScreenShot(input); // Process each text region individually foreach (var region in result.TextRegions) { Console.WriteLine($"Text: {region.Text}"); Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}"); Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}"); Console.WriteLine($"Confidence: {region.Confidence:P2}"); Console.WriteLine("---"); } // Find specific UI elements by text content var buttonRegion = result.TextRegions .FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase)); if (buttonRegion != null) { Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}"); } Imports IronOcr Imports System Imports System.Linq Dim ocr As New IronTesseract() Using input As New OcrInput() input.LoadImage("screenshot.png") Dim result As OcrPhotoResult = ocr.ReadScreenShot(input) ' Process each text region individually For Each region In result.TextRegions Console.WriteLine($"Text: {region.Text}") Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}") Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}") Console.WriteLine($"Confidence: {region.Confidence:P2}") Console.WriteLine("---") Next ' Find specific UI elements by text content Dim buttonRegion = result.TextRegions _ .FirstOrDefault(Function(r) r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase)) If buttonRegion IsNot Nothing Then Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}") End If End Using $vbLabelText $csharpLabel 高度なスクリーンショット処理テクニック 多言語のスクリーンショットを扱う 複数の言語を含むスクリーンショットを扱う場合、IronOCRは堅牢な多言語サポートを提供します。 これは、国際的なアプリケーションや多言語ユーザーインターフェイスのスクリーンショットに役立ちます: using IronOcr; // Configure for multiple languages var ocr = new IronTesseract(); ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified); ocr.AddSecondaryLanguage(OcrLanguage.Japanese); using var input = new OcrInput(); input.LoadImage("multilingual-screenshot.png"); // Process with language detection OcrPhotoResult result = ocr.ReadScreenShot(input); Console.WriteLine($"Extracted multilingual text: {result.Text}"); using IronOcr; // Configure for multiple languages var ocr = new IronTesseract(); ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified); ocr.AddSecondaryLanguage(OcrLanguage.Japanese); using var input = new OcrInput(); input.LoadImage("multilingual-screenshot.png"); // Process with language detection OcrPhotoResult result = ocr.ReadScreenShot(input); Console.WriteLine($"Extracted multilingual text: {result.Text}"); Imports IronOcr ' Configure for multiple languages Dim ocr As New IronTesseract() ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified) ocr.AddSecondaryLanguage(OcrLanguage.Japanese) Using input As New OcrInput() input.LoadImage("multilingual-screenshot.png") ' Process with language detection Dim result As OcrPhotoResult = ocr.ReadScreenShot(input) Console.WriteLine($"Extracted multilingual text: {result.Text}") End Using $vbLabelText $csharpLabel バッチ処理のパフォーマンス最適化 複数のスクリーンショットを処理する場合は、以下の最適化戦略を実行してください: using IronOcr; using System.Collections.Generic; using System.Threading.Tasks; public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths) { var ocr = new IronTesseract(); // Process screenshots in parallel for better performance var tasks = screenshotPaths.Select(async path => { using var input = new OcrInput(); input.LoadImage(path); // Apply consistent preprocessing input.DeNoise(); var result = await Task.Run(() => ocr.ReadScreenShot(input)); return new { Path = path, Result = result }; }); var results = await Task.WhenAll(tasks); // Process results foreach (var item in results) { Console.WriteLine($"File: {item.Path}"); Console.WriteLine($"Text: {item.Result.Text}"); Console.WriteLine($"Confidence: {item.Result.Confidence:P2}"); } } using IronOcr; using System.Collections.Generic; using System.Threading.Tasks; public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths) { var ocr = new IronTesseract(); // Process screenshots in parallel for better performance var tasks = screenshotPaths.Select(async path => { using var input = new OcrInput(); input.LoadImage(path); // Apply consistent preprocessing input.DeNoise(); var result = await Task.Run(() => ocr.ReadScreenShot(input)); return new { Path = path, Result = result }; }); var results = await Task.WhenAll(tasks); // Process results foreach (var item in results) { Console.WriteLine($"File: {item.Path}"); Console.WriteLine($"Text: {item.Result.Text}"); Console.WriteLine($"Confidence: {item.Result.Confidence:P2}"); } } Imports IronOcr Imports System.Collections.Generic Imports System.Threading.Tasks Public Async Function ProcessScreenshotBatchAsync(screenshotPaths As List(Of String)) As Task Dim ocr As New IronTesseract() ' Process screenshots in parallel for better performance Dim tasks = screenshotPaths.Select(Async Function(path) Using input As New OcrInput() input.LoadImage(path) ' Apply consistent preprocessing input.DeNoise() Dim result = Await Task.Run(Function() ocr.ReadScreenShot(input)) Return New With {Key .Path = path, Key .Result = result} End Using End Function) Dim results = Await Task.WhenAll(tasks) ' Process results For Each item In results Console.WriteLine($"File: {item.Path}") Console.WriteLine($"Text: {item.Result.Text}") Console.WriteLine($"Confidence: {item.Result.Confidence:P2}") Next End Function $vbLabelText $csharpLabel スクリーンショット OCR のベスト プラクティス 1.キャプチャ品質:スケーリングせずにネイティブ解像度でスクリーンショットをキャプチャします。 2.フォーマットの選択:ロスレス品質保持のためにPNGフォーマットを使用してください。 3.前処理:スクリーンショットの内容に基づいて適切なフィルタを適用する。 4.信頼度のしきい値: 重要なアプリケーションに信頼度ベースの検証を実装する 5.進捗追跡:長い作業には、進捗追跡を実装してください。 一般的なユースケース ReadScreenshotメソッドは次のような場合に最適です: 自動化されたUIテストと検証 デジタル資産管理システム エラーメッセージをキャプチャするためのカスタマーサポートツール ドキュメンテーションの自動化 スクリーン・リーダー用アクセシビリティ・ツール ゲームおよびストリーミングアプリケーション IronOCRの特徴との統合 スクリーンショットの読み取り機能は、IronOCRの他の機能とシームレスに統合されています。 データをさまざまな形式でエクスポートするための包括的なOCR結果の操作や、認識精度を微調整するための高度なTesseract設定をご覧ください。 まとめ IronOCRのReadScreenshotメソッドは、スクリーンショットからテキストを抽出するための強力で最適化されたソリューションを提供します。 専門的な前処理、高い精度、包括的な結果データにより、開発者はスクリーンショットのコンテンツを確実に処理する堅牢なアプリケーションを構築できます。 自動化ツール、アクセシビリティ ソリューション、データ抽出システムのいずれを構築する場合でも、ReadScreenshot メソッドは本番環境に必要なパフォーマンスと精度を提供します。 よくある質問 スクリーンショットからのOCR抽出が難しい理由は何ですか? スクリーンショットは、寸法やノイズレベルが異なるため、OCRには独特の課題があります。IronOCRは、スクリーンショットコンテンツに最適化された自動ノイズ除去およびコントラスト強調を適用する特殊なReadScreenshotメソッドにより、これらの問題に対処します。 スクリーンショットOCRでサポートされているファイル形式は何ですか? IronOCRのReadScreenshotメソッドはPNG、JPG、BMPなどの一般的な画像ファイル形式をサポートしており、ほとんどのスクリーンショットキャプチャツールやアプリケーションと互換性があります。 ReadScreenshotメソッドは、標準的なOCRメソッドとどう違うのですか? IronOCRの標準的なOCRメソッドとは異なり、ReadScreenshotメソッドは、自動ノイズ除去、コントラスト強調、アンチエイリアスフォントやUI要素のより良い処理など、スクリーンショットコンテンツに合わせた特定の前処理最適化を適用します。 スクリーンショットOCR機能に必要な追加パッケージは何ですか? IronOCRのReadScreenshot関数を使用するには、IronOcr.Extension.AdvancedScanパッケージをインストールする必要があります。このパッケージは、スクリーンショットのテキスト認識精度を高める高度なコンピューター・ビジョン機能を提供します。 スクリーンショットからテキストを抽出するには、どのくらい時間がかかりますか? IronOCRを使えば、スクリーンショットをOcrInputに読み込み、ReadScreenShotを呼び出し、抽出されたテキスト、信頼度スコア、テキスト領域にOcrPhotoResultを介して即座にアクセスすることで、スクリーンショットからテキストを数秒で抽出することができます。 スクリーンショット OCR は、どのようなコンテンツに最適化されますか? IronOCRのスクリーンショット最適化には、UI要素の自動検出、異なるオペレーティング・システム間でのシステム・フォントの認識向上、最新のアプリケーションで一般的なアンチエイリアス・テキストの処理向上が含まれます。 スクリーンショットの特定の領域を処理できますか? IronOCRはスクリーンショットの特定の領域を処理することをサポートしています。 スクリーンショットOCRで多言語コンテンツはサポートされていますか? IronOCRのReadScreenshotメソッドはスクリーンショットの多言語コンテンツを扱うことができ、国際的なアプリケーションや多言語ユーザーインターフェースに適しています。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 5,384,824 | バージョン: 2026.2 リリース NuGet 無料版 総ダウンロード数: 5,384,824 ライセンスを見る