IRONSOFTWAREHOME
VERWENDUNG VON IRONOCR

OCR in C# CodeProject Tutorial: Extrahieren von Text aus Bildern mit IronOCR

Kannaopat Udonpant
Kannapat Udonpant
Updated: 28. Juni 2026

Die optische Zeichenerkennung (OCR) in C# ermöglicht es Ihnen, maschinenlesbaren Text aus gescannten Dokumenten, Bilddateien und TIFF-Dateien innerhalb von .NET Anwendungen zu extrahieren. Mit IronOCR , einer .NET-nativen OCR-Bibliothek, installieren Sie ein NuGet Paket und können mit wenigen Codezeilen Text aus Bildern lesen – ohne externen Dienst, ohne Laufzeitabhängigkeit, ohne API-Gebühren pro Aufruf.

Starten Sie Ihre kostenlose Testversion von IronOCR , um die folgenden Codebeispiele nachzuvollziehen.

Wie installiert man IronOCR in einem .NET -Projekt?

Der schnellste Weg, OCR zu einem .NET 10-Projekt hinzuzufügen, ist über den NuGet Paketmanager. Öffnen Sie ein Terminal im Projektverzeichnis und führen Sie den .NET CLI-Befehl aus, oder verwenden Sie die Paket-Manager-Konsole innerhalb von Visual Studio:

PM > Install-Package IronOcr

Nach der Installation lädt der NuGet Paketmanager alle benötigten Assemblys herunter und stellt die Referenzen automatisch her. IronOCR zielt auf .NET Framework 4.6.2+, .NET Core 3.1+ und .NET 5 bis .NET 10 ab und funktioniert daher in Konsolenanwendungen, ASP.NET Core Diensten, WPF-Anwendungen und Azure Functions.

Für lokale Tests ist keine Registrierung eines Lizenzschlüssels erforderlich – auf der Ausgabe wird ein Testwasserzeichen angezeigt, bis eine Lizenz angewendet wird. Fügen Sie die using-Direktive hinzu und übergeben Sie Ihren Schlüssel einmalig beim Start, sobald Sie für den Produktivbetrieb bereit sind:

using IronOcr;

// Apply license key before any OCR calls (production only)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

Auf der IronOCR -Lizenzseite finden Sie Informationen zu Preisen und Aktivierung.

Wie extrahiert man Text aus einer Bilddatei?

Der Kern-OCR-Workflow umfasst drei Objekte: IronTesseract (die Engine), OcrInput (den Eingabebehälter) und OcrResult (die Ausgabe). Das untenstehende Beispiel liest eine PNG-Datei und druckt den erkannten Text auf die Konsole.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("sample-document.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

Ausgabe der optischen Zeichenerkennung

OCR im C# CodeProject Tutorial: Text aus Bildern mit IronOCR extrahieren: Bild 1 - Screenshot der OCR-Ausgabe

IronTesseract umhüllt die Tesseract 5-Engine mit .NET-freundlichen Standardeinstellungen und automatisierter Modellverwaltung. OcrInput.LoadImage akzeptiert PNG-, JPEG-, BMP-, GIF-, TIFF- und WebP-Dateien, sodass Sie selten Formate konvertieren müssen, bevor Sie ein Bild an die Engine übergeben.

Die OcrResult.Text-Eigenschaft gibt eine einfache Zeichenkette aller erkannten Zeichen zurück, die durch Zeilenumbrüche verbunden sind. Für einen reicheren Zugriff -- Wortbegrenzungsboxen, Vertrauenswerte, Text pro Absatz -- navigieren Sie durch die result.Pages-, result.Paragraphs-, result.Words- und result.Characters-Sammlungen.

Wichtige Eigenschaften, die man kennen sollte:

  • result.Pages[0].Text -- Text von einer einzelnen Seite
  • result.Words[n].Text und result.Words[n].Confidence -- Genauigkeit pro Wort (0,0 -- 1,0)
  • result.Pages[0].Paragraphs -- Absatzsegmentierung für strukturierte Extraktion

Sie können auch ocr.ReadAsync(input) aufrufen, um den UI-Thread in Desktop- oder Webanwendungen frei zu halten.

Wie verarbeiten Sie gescannte Dokumente und TIFF-Dateien?

Mehrseitige TIFF-Dateien sind in Dokumentenscanning-Workflows weit verbreitet. IronOCR bearbeitet sie mit LoadImageFrames, das es Ihnen ermöglicht, genau auszuwählen, welche Frames (Seiten) verarbeitet werden sollen -- nützlich, wenn Sie nur einen Teil eines großen Archivs benötigen.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
int[] pageIndices = { 0, 1, 2 };
input.LoadImageFrames("scanned-documents.tiff", pageIndices);

// Correct skew and remove noise before reading
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    Console.WriteLine(page.Text);
}

OCR-Ausgabe aus mehrseitiger TIFF-Datei

OCR im C# CodeProject Tutorial: Text aus Bildern mit IronOCR extrahieren: Bild 2 - Mehrseitige TIFF-OCR-Ausgabe

Deskew dreht das Bild, um jeglichen Schiefstand zu korrigieren, der durch Flachbettscanner entsteht. DeNoise entfernt Sprenkel und JPEG-Artefakte, die die Tesseract-Engine verwirren. Zusammengenommen verbessern diese beiden Vorverarbeitungsfilter die Erkennungsgenauigkeit bei qualitativ schlechten Scans erheblich.

Zusätzliche OcrInput-Filter für schwieriges Ausgangsmaterial verfügbar:

  • input.Sharpen() -- erhöht den Kantenkontrast bei verschwommenen Bildern
  • input.Binarize() -- konvertiert in Schwarz-Weiß für Fax-Qualitätsdokumente
  • input.Scale(200) -- skaliert kleine Bilder hoch, um die Zeichenabtrennung zu verbessern
  • input.Rotate(90) -- korrigiert gedrehte Dokumentenausrichtungen

Eine vollständige Liste der Vorverarbeitungsoptionen und deren Anwendungszeitpunkte finden Sie im IronOCR Bildfilterleitfaden .

Wie konfiguriert man die Sprachunterstützung für OCR?

IronOCR liest standardmäßig englischen Text. Um Dokumente in anderen Sprachen zu verarbeiten, installieren Sie das passende Sprach-NuGet-Paket und setzen Sie die Language-Eigenschaft auf der IronTesseract-Instanz.

dotnet add package IronOcr.Languages.German, IronOcr.Languages.French, IronOcr.Languages.Japanese

Konfigurieren Sie anschließend die Engine und fügen Sie für zweisprachige Dokumente eine zweite Sprache hinzu:

using IronOcr;
using IronOcr.Languages;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

// For bilingual documents (e.g. Canadian forms, EU directives)
ocr.AddSecondaryLanguage(OcrLanguage.French);

using var input = new OcrInput();
input.LoadImage("german-invoice.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

IronOCR unterstützt über 125 Sprachen , die jeweils als separates, schlankes NuGet Paket bereitgestellt werden. Dadurch bleibt Ihre Produktionsbinärdatei klein – es werden nur die Sprachdaten aufgenommen, die Ihre Anwendung tatsächlich benötigt. Die Engine mischt Primär- und Sekundärsprachmodelle während der Erkennung, wenn Sie AddSecondaryLanguage aufrufen.

Wie geht man mit OCR-Fehlern um und verbessert die Erkennungsergebnisse?

Produktionsanwendungen benötigen eine Fehlerbehandlung im Bereich der OCR-Pipeline. Probleme mit der Bildqualität, fehlende Dateien oder nicht unterstützte Formate können Ausnahmen verursachen. Durch das Einbetten des Aufrufs in einen try/catch-Block erhalten Sie einen sauberen Wiederherstellungspfad.

using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;

try
{
    using var input = new OcrInput();
    input.LoadImage("document.png");
    input.DeNoise();
    input.Deskew();

    OcrResult result = ocr.Read(input);

    if (result.Text.Length > 0)
    {
        Console.WriteLine("Recognised text:");
        Console.WriteLine(result.Text);
    }
    else
    {
        Console.WriteLine("No text was detected in the image.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR error: {ex.Message}");
}

Einige zusätzliche Einstellungen, die helfen, wenn die Genauigkeit geringer als erwartet ist:

  • ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto -- lässt Tesseract automatisch zwischen einspaltigen, mehrspaltigen und Einzelwort-Layouts wählen
  • ocr.Configuration.ReadBarCodes = false -- deaktiviert die Barcode-Erkennung, wenn Sie nur Textdokumente verarbeiten und schnellere Durchlaufzeiten wünschen
  • ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5 -- stellt sicher, dass Sie die schnellste verfügbare Engine verwenden

Bei strukturierten Formularen, bei denen die Felder an vorhersehbaren Positionen erscheinen, sollte die regionenbasierte OCR verwendet werden, um nur die relevanten Bereiche zu lesen:

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
var region = new CropRectangle(x: 50, y: 200, width: 600, height: 100);
input.LoadImage("form.png", region);

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

Durch die Beschränkung der Bilderkennung auf einen Bildausschnitt verkürzt sich die Verarbeitungszeit bei großen Bildern um bis zu 90 Prozent. Diese Technik eignet sich gut zum Extrahieren von Rechnungsnummern, zum Auslesen von Formularfeldern und zum Scannen von Ausweisdokumenten. Weitere Details finden Sie im regionalen OCR-Leitfaden .

Wie erstellt man ein durchsuchbares PDF aus erkanntem Text?

Die Umwandlung gescannter Bildarchive in durchsuchbare PDF-Dateien ist einer der wertvollsten Anwendungsfälle für OCR. Die resultierende Datei bewahrt das ursprüngliche visuelle Erscheinungsbild und bettet gleichzeitig eine unsichtbare Textebene ein, die von PDF-Viewern, Suchmaschinen und Bildschirmleseprogrammen indexiert werden kann.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.Title = "Quarterly Report Q1 2026";
input.LoadImage("page1.png");
input.LoadImage("page2.png");
input.LoadImage("page3.png");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");

Console.WriteLine("Searchable PDF created.");
Console.WriteLine($"Pages processed: {result.Pages.Count}");

Ausgabe eines durchsuchbaren PDF-Dokuments

OCR im C# CodeProject Tutorial: Text aus Bildern mit IronOCR extrahieren: Bild 3 - Durchsuchbares PDF erstellt aus Eingabebildern

SaveAsSearchablePdf schreibt eine PDF/A-kompatible Datei, bei der jedes erkannte Wort an den genauen Pixelkoordinaten des Originalbildes platziert wird. Adobe Acrobat, Vorschau unter macOS und Foxit Reader unterstützen alle die Volltextsuche in diesen Dateien unmittelbar nach deren Erstellung.

Für webbasierte Dokumentenanzeigen oder nachgeschaltete NLP-Pipelines verwenden Sie stattdessen result.SaveAsHocrFile("output.hocr"). Das hOCR-Format ist ein offener XML-Standard, der neben dem Text auch Begrenzungsrahmen für jedes Wort kodiert und so clientseitige Hervorhebung bei der Suche sowie Barrierefreiheitsanmerkungen auf Wortebene ermöglicht.

Zusätzliche Ausgabeformate verfügbar von OcrResult:

  • result.SaveAsHocrFile("output.hocr") -- hOCR XML mit Positionsdaten
  • result.ToXDocument() -- LINQ-abfragbares XDocument zur programmatischen Verarbeitung
  • result.Pages[0].Text -- einfacher Text pro Seite für Streaming-Pipelines

Für Anwendungen, die bereits mit IronPDF arbeiten, können Sie OcrResult direkt in PDF-Erstellungs-Workflows einbinden und so OCR-Extraktion mit der PDF-Bearbeitung in einem einzigen .NET-Prozess kombinieren.

Wie liest man Barcodes zusammen mit Text?

IronOCR kann Barcodes und QR-Codes lesen, die in dasselbe Bild wie gedruckter Text eingebettet sind, wodurch die Notwendigkeit entfällt, eine separate Barcode-Bibliothek zu verwenden. Aktivieren Sie die Funktion mit einer einzigen Konfigurationseigenschaft:

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;

using var input = new OcrInput();
input.LoadImage("shipping-label.png");

OcrResult result = ocr.Read(input);

Console.WriteLine("Text:");
Console.WriteLine(result.Text);

Console.WriteLine("Barcodes:");
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"  {barcode.Format}: {barcode.Value}");
}

Unterstützte Barcode-Formate sind Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, PDF417, Data Matrix und QR-Code. Alle Details finden Sie im IronOCR Leitfaden zum Lesen von Barcodes .

Diese Funktion ist besonders nützlich in den Bereichen Logistik, Gesundheitswesen und Einzelhandel, wo Versandetiketten, Patientenarmbänder und Produktanhänger sowohl für Menschen lesbaren Text als auch maschinenlesbare Barcodes enthalten.

Wie vergleicht man IronOCR mit anderen .NET OCR-Optionen?

Entwickler, die OCR-Bibliotheken für .NET evaluieren, ziehen typischerweise IronOCR, Tesseract .NET und Cloud-Dienste wie Google Cloud Vision oder Azure Computer Vision in Betracht. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:

Vergleich der .NET OCR-Optionen anhand wichtiger Entwicklerkriterien
KriteriumIronOCRTesseract.NETAzure Computer Vision
BereitstellungVor Ort oder in der Cloud, keine externen AnrufeVor OrtNur in der Cloud, Internetverbindung erforderlich
InstallationEinzelnes NuGet -PaketMehrere Pakete + native BinärdateienSDK + Azure-Abonnement
SprachpaketeMehr als 125 über NuGet -PaketeManueller Tessdata-DownloadVerwaltet von Azure
Durchsuchbare PDF-AusgabeEingebauter MethodenaufrufNicht enthaltenNicht enthalten
Bildvorverarbeitung12+ integrierte FilterManuelles Pre-Processing erforderlichAutomatisch (serverseitig)
PreismodellEinmalige unbefristete LizenzOpen Source (Apache 2.0)Abrechnung pro Anruf

Tesseract , das von Google als Open-Source-Projekt gepflegt wird, bildet die Grundlage sowohl von IronOCR als auch von Tesseract .NET . IronOCR bietet .NET-idiomatische Paketierung, automatisches Modellmanagement und die Produktionsausgabefunktionen (durchsuchbares PDF, hOCR-Export), die bei den reinen Tesseract-Bindungen fehlen. Azure Computer Vision bietet zwar höchste Genauigkeit in der Cloud, führt aber zu Netzwerklatenz und Kosten pro Aufruf, die für Workflows mit hohem Datenvolumen oder Offline-Nutzung ungeeignet sind.

Für Szenarien, in denen Datenschutzbestimmungen das Senden von Dokumenten an externe Dienste verbieten – z. B. Krankenakten, Rechtsdokumente, Finanzberichte – ist eine lokale Bibliothek wie IronOCR die richtige Wahl.

Was sind Ihre nächsten Schritte?

Sie verfügen nun über die Bausteine, um OCR zu jeder .NET 10-Anwendung hinzuzufügen: Installation über NuGet, grundlegende Bild-zu-Text-Extraktion, Verarbeitung mehrseitiger TIFF-Dateien, Sprachkonfiguration, Fehlerbehandlung, regionenbasiertes Lesen, Barcode-Erkennung und Generierung durchsuchbarer PDFs.

Um tiefer in die Materie einzutauchen, erkunden Sie diese IronOCR Ressourcen:

Bei Fragen zur Lizenzierung oder zur Bereitstellung von IronOCR in einer Produktionsumgebung besuchen Sie die IronOCR Lizenzierungsseite . Eine kostenlose Testlizenz entfernt Wasserzeichen aus der Ausgabe während des Testzeitraums, und das Support-Team von Iron Software steht bei technischen Fragen in jeder Preisstufe zur Verfügung.

Erster Schritt:
arrow pointer

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.