Lesen von Screenshots mit IronOCR in C#35;

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

Die Methode ReadScreenshot von IronOCR extrahiert effizient Text aus Screenshots, bewältigt verschiedene Größen und Rauschprobleme und unterstützt gängige Dateiformate wie PNG, JPG und BMP.

Screenshots bieten eine schnelle Möglichkeit, Informationen zu teilen und wichtige Daten zu erfassen. Die Extraktion von Text aus Screenshots hat sich jedoch aufgrund der unterschiedlichen Abmessungen und des Rauschens als schwierig erwiesen. Das macht Screenshots zu einem anspruchsvollen Medium für OCR.

IronOCR löst dieses Problem durch die Bereitstellung spezieller Methoden wie ReadScreenshot. Diese Methode ist für das Lesen von Screenshots und das Extrahieren von Informationen aus ihnen optimiert, wobei gängige Dateiformate akzeptiert werden. Im Gegensatz zu Standard-OCR-Methoden wendet diese Methode spezielle Vorverarbeitungsoptimierungen an, die auf den Inhalt von Screenshots zugeschnitten sind, einschließlich automatischer Rauschunterdrückung und Kontrastverbesserung.

Um diese Funktion zu nutzen, installieren Sie das Paket IronOcr.Extension.AdvancedScan. Diese Erweiterung bietet fortschrittliche Computer-Vision-Funktionen, die die Genauigkeit der Texterkennung von Screenshots verbessern, insbesondere für UI-Elemente, Systemschriften und Text mit Anti-Aliasing in modernen Anwendungen.

als-Überschrift:2(Schnellstart: Text von einem Screenshot lesen)

Mit ReadScreenshot von IronOCR können Sie in Sekundenschnelle loslegen: Laden Sie Ihr Bildschirmfoto in ein OcrInput, rufen Sie ReadScreenShot auf und haben Sie über OcrPhotoResult sofort Zugriff auf den extrahierten Text, den Konfidenzwert und die Textbereiche. Es ist der schnellste Weg, um Bilder mit minimalem Aufwand in brauchbaren Text zu verwandeln.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    OcrPhotoResult result = new IronTesseract().ReadScreenShot(new OcrInput().LoadImage("screenshot.png"));
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

In diesem Leitfaden wird die Verwendung von IronOCR für die Texterkennung von Screenshots demonstriert, wobei Beispiele und die Eigenschaften des Ergebnisobjekts erläutert werden. Wir werden fortgeschrittene Szenarien wie die Verarbeitung bestimmter Regionen, den Umgang mit mehrsprachigen Inhalten und die Optimierung der Leistung bei der Stapelverarbeitung untersuchen.

Wie extrahiere ich Text aus Screenshots mit ReadScreenshot?

Um einen Screenshot in IronOCR zu lesen, verwenden Sie die Methode ReadScreenshot, die einen OcrInput als Parameter annimmt. Diese Methode ist mehr für Screenshots optimiert als das standardmäßige Read-Gegenstück der Bibliothek. Die Optimierung umfasst die automatische Erkennung von UI-Elementen, eine bessere Handhabung von Anti-Aliasing-Schriften und eine verbesserte Erkennung von Systemschriften auf verschiedenen Betriebssystemen.

[{i:(

  • Die Methode funktioniert derzeit für Sprachen wie Englisch, Chinesisch, Japanisch, Koreanisch und Latein-basierte Alphabete.
  • Die Verwendung eines erweiterten Scans auf .NET Framework erfordert, dass das Projekt auf x64-Architektur läuft.

@@--KLAMMER-SCHLIESSEN--@@

Welche Arten von Screenshots eignen sich am besten?

Unten ist unser Input für das Codebeispiel; wir demonstrieren die Vielseitigkeit dieser Methode, indem wir verschiedene Schriftarten und -größen mischen. Die Methode ReadScreenshot eignet sich hervorragend zum Erkennen:

  • System-UI-Schriftarten (Windows, macOS, Linux)
  • Anti-Aliasing-Text aus modernen Anwendungen
  • Gemischte Schriftgrößen und Stile
  • Text überlagert auf komplexen Hintergründen
  • Konsolenausgabe und Bildschirmfotos vom Terminal
  • Browserinhalte mit verschiedenen Webfonts

Optimale Ergebnisse erzielen Sie, wenn Sie Screenshots in nativer Auflösung ohne Komprimierung aufnehmen. Die Methode verarbeitet verschiedene Bildformate, aber das PNG-Format bewahrt aufgrund seiner verlustfreien Komprimierung die Textklarheit am besten.

Homepage der IronOcr C# OCR-Bibliothek mit Angabe der Plattformkompatibilität und der wichtigsten Funktionen für die Texterkennung

Wie implementiere ich die ReadScreenshot-Methode?

: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

Für komplexe Szenarien sollten Sie den Leseprozess der Screenshots durch zusätzliche Vorverarbeitung verbessern:

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}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Welche Eigenschaften gibt OcrPhotoResult zurück?

Visual Studio Debugger zeigt IronOCR Bibliotheksdetails mit Version 2024.9 und Genauigkeitswert 0.937

Die Konsolenausgabe zeigt die Extraktion aller Textinstanzen aus dem Bildschirmfoto. Sehen wir uns die Eigenschaften von OcrPhotoResult an und wie man sie effektiv nutzen kann:

  • Text: Der extrahierte Text aus dem OCR Input. Diese Eigenschaft enthält den gesamten erkannten Text als eine einzige Zeichenfolge, wobei das ursprüngliche Layout mit Zeilenumbrüchen und Abständen beibehalten wird.
  • Vertrauen: Eine doppelte Eigenschaft, die das statistische Vertrauen in die Genauigkeit auf einer Skala von 0 bis 1 angibt, wobei 1 das höchste Vertrauen darstellt. Nutzen Sie dies, um eine Qualitätskontrolle in Ihrer Anwendung zu implementieren.
  • TextRegion: Ein Array von TextRegion-Objekten mit Eigenschaften, die Bereiche zurückgeben, in denen sich Text auf dem Bildschirmfoto befindet. Standardmäßig sind alle TextRegion eine abgeleitete Rectangle Klasse von IronOCR Modellen. Sie enthält die x- und y-Koordinaten sowie die Höhe und Breite des Rechtecks.

Die Arbeit mit TextRegions ermöglicht es Ihnen,:

  • Extrahieren von Text aus bestimmten Screenshot-Bereichen
  • Identifizieren Sie die Positionen der UI-Elemente
  • Anklickbare Overlays auf der Grundlage von Textpositionen erstellen
  • Implementierung der regionalspezifischen OCR-Verarbeitung

Hier ist ein Beispiel für die Bearbeitung einzelner Textregionen:

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}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fortgeschrittene Techniken der Screenshot-Verarbeitung

Handhabung mehrsprachiger Screenshots

Bei der Arbeit mit Screenshots, die mehrere Sprachen enthalten, bietet IronOCR eine solide Mehrsprachenunterstützung. Dies ist nützlich für internationale Anwendungen oder Screenshots von mehrsprachigen Benutzeroberflächen:

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}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Performance-Optimierung für Stapelverarbeitung

Wenden Sie bei der Bearbeitung mehrerer Screenshots diese Optimierungsstrategien an:

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}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Best Practices für Screenshot OCR

  1. Erfassungsqualität: Erfassen Sie Screenshots in nativer Auflösung ohne Skalierung
  2. Formatauswahl: Verwenden Sie das PNG-Format für eine verlustfreie Qualitätserhaltung
  3. Vorbearbeitung: Anwendung geeigneter Filter auf der Grundlage des Bildschirminhalts
  4. Vertrauensschwellen: Implementierung einer vertrauensbasierten Validierung für kritische Anwendungen
  5. Fortschrittsverfolgung: Implementieren Sie für lange Vorgänge Fortschrittsverfolgung

Häufige Anwendungsfälle

Die Methode ReadScreenshot ist ideal für:

  • Automatisierte UI-Tests und Überprüfung
  • Digitale Asset-Management-Systeme
  • Kundensupport-Tools zur Erfassung von Fehlermeldungen
  • Automatisierung der Dokumentation
  • Zugänglichkeitstools für Bildschirmleser
  • Spiele und Streaming-Anwendungen

Integration mit IronOCR-Funktionen

Die Funktion zum Lesen von Screenshots lässt sich nahtlos in andere IronOCR-Funktionen integrieren. Entdecken Sie die umfassende OCR-Ergebnismanipulation, um Daten in verschiedene Formate zu exportieren, oder tauchen Sie ein in die erweiterte Tesseract-Konfiguration zur Feinabstimmung der Erkennungsgenauigkeit.

Zusammenfassung

Die ReadScreenshot-Methode von IronOCR bietet eine leistungsstarke, optimierte Lösung für die Extraktion von Text aus Bildschirmfotos. Dank der speziellen Vorverarbeitung, der hohen Genauigkeit und der umfassenden Ergebnisdaten können Entwickler robuste Anwendungen erstellen, die Screenshots zuverlässig verarbeiten. Ob bei der Erstellung von Automatisierungswerkzeugen, Barrierefreiheitslösungen oder Datenextraktionssystemen, die ReadScreenshot-Methode bietet die für Produktionsumgebungen erforderliche Leistung und Genauigkeit.

Häufig gestellte Fragen

Was macht die OCR-Extraktion aus Screenshots so schwierig?

Screenshots stellen aufgrund der unterschiedlichen Abmessungen und des Rauschpegels eine besondere Herausforderung für die OCR dar. IronOCR löst diese Probleme mit seiner speziellen ReadScreenshot-Methode, die eine automatische Rauschunterdrückung und Kontrastverbesserung anwendet, die speziell für Bildschirmfotos optimiert ist.

Welche Dateiformate werden für die OCR von Screenshots unterstützt?

Die ReadScreenshot-Methode von IronOCR unterstützt gängige Bilddateiformate wie PNG, JPG und BMP und ist somit mit den meisten Tools und Anwendungen zur Erfassung von Screenshots kompatibel.

Wie unterscheidet sich die ReadScreenshot-Methode von Standard-OCR-Methoden?

Im Gegensatz zu den Standard-OCR-Methoden in IronOCR wendet die ReadScreenshot-Methode spezielle Vorverarbeitungsoptimierungen an, die auf den Inhalt von Screenshots zugeschnitten sind, einschließlich automatischer Rauschunterdrückung, Kontrastverbesserung und besserer Handhabung von Anti-Alias-Schriften und UI-Elementen.

Welches zusätzliche Paket ist für die OCR-Funktionalität von Screenshots erforderlich?

Um die ReadScreenshot-Funktion in IronOCR zu nutzen, müssen Sie das IronOcr.Extension.AdvancedScan-Paket installieren, das erweiterte Computer-Vision-Funktionen bietet, die die Genauigkeit der Texterkennung von Screenshots verbessern.

Wie schnell kann ich mit der Extraktion von Text aus Screenshots beginnen?

Mit IronOCR können Sie Text aus Screenshots in Sekundenschnelle extrahieren, indem Sie Ihren Screenshot in ein OcrInput laden, ReadScreenShot aufrufen und sofort über das OcrPhotoResult auf den extrahierten Text, die Konfidenzbewertung und die Textregionen zugreifen.

Für welche Arten von Inhalten ist die Screenshot-OCR optimiert?

Die IronOCR-Screenshot-Optimierung umfasst die automatische Erkennung von UI-Elementen, eine verbesserte Erkennung von Systemschriftarten auf verschiedenen Betriebssystemen und eine bessere Handhabung von Text mit Anti-Aliasing, der in modernen Anwendungen häufig vorkommt.

Kann ich bestimmte Bereiche eines Screenshots bearbeiten?

Ja, IronOCR unterstützt die Verarbeitung bestimmter Bereiche von Screenshots, so dass Sie gezielt bestimmte Bereiche von Interesse bearbeiten können, anstatt das gesamte Bild zu verarbeiten, was die Leistung und Genauigkeit verbessern kann.

Werden mehrsprachige Inhalte in Screenshot OCR unterstützt?

Die ReadScreenshot-Methode von IronOCR kann mehrsprachige Inhalte in Screenshots verarbeiten und eignet sich daher für internationale Anwendungen und mehrsprachige Benutzeroberflächen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht