Wie man Text aus Bildern in C# extrahiert

C# OCR Image to Text Tutorial: Convert Images to Text Without Tesseract

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

Möchten Sie Bilder in C# ohne den Aufwand komplexer Tesseract-Konfigurationen in Text umwandeln? Dieses umfassende IronOCR C#-Tutorial zeigt Ihnen, wie Sie in Ihren .NET-Anwendungen mit nur wenigen Codezeilen leistungsstarke optische Zeichenerkennung implementieren können.

als-Überschrift:2(Schnellstart: Text aus einem Bild in einer Zeile extrahieren)

Dieses Beispiel zeigt, wie einfach es ist, IronOCR zu erfassen – nur eine Zeile C# verwandelt Ihr Bild in Text. Es demonstriert die Initialisierung der OCR-Engine und das sofortige Lesen und Abrufen von Text ohne komplexe Einrichtung.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    string text = new IronTesseract().Read("image.png").Text;
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Arbeitsablauf (5 Schritte)

  1. Laden Sie IronOCR herunter - die C# OCR-Bibliothek zur Bild-zu-Text-Konvertierung
  2. Verwenden Sie die IronTesseract-Klasse, um sofort Text aus Bildern zu lesen
  3. Wenden Sie Bildfilter an, um die OCR-Genauigkeit bei Scans in niedriger Qualität zu verbessern
  4. Verarbeiten Sie mehrere Sprachen mit herunterladbaren Sprachpaketen
  5. Exportieren Sie Ergebnisse als durchsuchbare PDFs oder extrahieren Sie Textzeichenfolgen

Wie lese ich Text von Bildern in .NET-Anwendungen?

Um C# OCR Bild-zu-Text-Funktionalität in Ihren .NET-Anwendungen zu erreichen, benötigen Sie eine zuverlässige OCR-Bibliothek. IronOCR bietet eine verwaltete Lösung mit der IronOcr.IronTesseract-Klasse, die sowohl Genauigkeit als auch Geschwindigkeit maximiert, ohne dass externe Abhängigkeiten erforderlich sind.

Installieren Sie zuerst IronOCR in Ihrem Visual Studio-Projekt. You can download the IronOCR DLL directly or use NuGet Package Manager.

Install-Package IronOcr

Warum IronOCR für C# OCR ohne Tesseract wählen?

Wenn Sie Bilder in C# in Text umwandeln müssen, bietet IronOCR erhebliche Vorteile gegenüber traditionellen Tesseract-Implementierungen:

  • Funktioniert sofort in reinen .NET-Umgebungen
  • Keine Tesseract-Installation oder -Konfiguration erforderlich
  • Führt die neuesten Engines aus: Tesseract 5 (plus Tesseract 4 & 3)
  • Kompatibel mit .NET Framework 4.5+, .NET Standard 2+, und .NET Core 2, 3, 5, 6, 7, 8, 9, und 10
  • Verbessert Genauigkeit und Geschwindigkeit im Vergleich zu herkömmlichem Tesseract
  • Unterstützt Xamarin, Mono, Azure und Docker-Deployments
  • Verwalten komplexer Tesseract-Wörterbücher über NuGet-Pakete
  • Unterstützt PDFs, Multi-Frame-TIFFs und alle wichtigen Bildformate automatisch
  • Korrigiert niedrige Qualität und verzerrte Scans für optimale Ergebnisse

Nutzen Sie IronOCR heute kostenlos in Ihrem Projekt.

Erster Schritt:
green arrow pointer

Wie verwende ich das IronOCR C#-Tutorial für grundlegende OCR?

Dieses Iron Tesseract C#-Beispiel zeigt den einfachsten Weg, Text aus einem Bild mit IronOCR zu lesen. Die IronOcr.IronTesseract-Klasse extrahiert Text und gibt ihn als Zeichenfolge zurück.

// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup

using IronOcr;
using System;

try
{
    // Initialize IronTesseract for OCR operations
    var ocrEngine = new IronTesseract();

    // Path to your image file - supports PNG, JPG, TIFF, BMP, and more
    var imagePath = @"img\Screenshot.png";

    // Create input and perform OCR to convert image to text
    using (var input = new OcrInput(imagePath))
    {
        // Read text from image and get results
        OcrResult result = ocrEngine.Read(input);

        // Display extracted text
        Console.WriteLine(result.Text);
    }
}
catch (OcrException ex)
{
    // Handle OCR-specific errors
    Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}
// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup

using IronOcr;
using System;

try
{
    // Initialize IronTesseract for OCR operations
    var ocrEngine = new IronTesseract();

    // Path to your image file - supports PNG, JPG, TIFF, BMP, and more
    var imagePath = @"img\Screenshot.png";

    // Create input and perform OCR to convert image to text
    using (var input = new OcrInput(imagePath))
    {
        // Read text from image and get results
        OcrResult result = ocrEngine.Read(input);

        // Display extracted text
        Console.WriteLine(result.Text);
    }
}
catch (OcrException ex)
{
    // Handle OCR-specific errors
    Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}
' Basic C# OCR image to text conversion using IronOCR
' This example shows how to extract text from images without complex setup

Imports IronOcr
Imports System

Try
	' Initialize IronTesseract for OCR operations
	Dim ocrEngine = New IronTesseract()

	' Path to your image file - supports PNG, JPG, TIFF, BMP, and more
	Dim imagePath = "img\Screenshot.png"

	' Create input and perform OCR to convert image to text
	Using input = New OcrInput(imagePath)
		' Read text from image and get results
		Dim result As OcrResult = ocrEngine.Read(input)

		' Display extracted text
		Console.WriteLine(result.Text)
	End Using
Catch ex As OcrException
	' Handle OCR-specific errors
	Console.WriteLine($"OCR Error: {ex.Message}")
Catch ex As Exception
	' Handle general errors
	Console.WriteLine($"Error: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Dieser Code erreicht 100% Genauigkeit bei klaren Bildern und extrahiert Text genau so, wie er erscheint:

IronOCR Simple Example

In this simple example we test the accuracy of our C# OCR library to read text from a PNG Image. This is a very basic test, but things will get more complicated as the tutorial continues.

The quick brown fox jumps over the lazy dog

Die IronTesseract-Klasse verarbeitet intern komplexe OCR-Operationen. Sie scannt automatisch die Ausrichtung, optimiert die Auflösung und verwendet KI, um Text aus Bildern mit menschlicher Genauigkeit zu lesen.

Trotz der ausgeklügelten Verarbeitung im Hintergrund - einschließlich Bildanalyse, Engine-Optimierung und intelligenter Texterkennung - entspricht der OCR-Prozess der menschlichen Lesegeschwindigkeit und erhält außergewöhnliche Genauigkeitsniveaus.

Einfaches IronOCR-Beispiel, das C# OCR Bild-zu-Text-Konvertierung mit 100% Genauigkeit zeigt Screenshot, der die Fähigkeit von IronOCR demonstriert, Text aus einem PNG-Bild mit perfekter Genauigkeit zu extrahieren

Wie implementiere ich fortgeschrittene C# OCR ohne Tesseract-Konfiguration?

Für Produktionsanwendungen, die optimale Leistung erfordern, wenn Sie Bilder in C# in Text umwandeln, verwenden Sie die Klassen OcrInput und IronTesseract zusammen. Dieser Ansatz bietet fein abgestimmte Kontrolle über den OCR-Prozess.

Merkmale der OcrInput-Klasse

  • Verarbeitet mehrere Bildformate: JPEG, TIFF, GIF, BMP, PNG
  • Importiert vollständige PDFs oder spezifische Seiten
  • Verbessert automatisch Kontrast, Auflösung und Bildqualität
  • Korrigiert Drehung, Rauschunterdrückung, Verzerrung und negative Bilder

Merkmale der IronTesseract-Klasse

  • Zugriff auf 125+ vorgefertigte Sprachen
  • Enthält Tesseract 5, 4 und 3 Engines
  • Dokumenttyp-Spezifikation (Screenshot, Ausschnitt oder vollständiges Dokument)
  • Integrierte Barcode-Lesefähigkeiten
  • Mehrere Ausgabeformate: durchsuchbare PDFs, HOCR HTML, DOM-Objekte und Zeichenfolgen

Wie beginne ich mit OcrInput und IronTesseract?

Hier ist eine empfohlene Konfiguration für dieses IronOCR C#-Tutorial, die gut mit den meisten Dokumenttypen funktioniert:

using IronOcr;

// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();

// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
    // Process specific pages from multi-page TIFF files
    int[] pageIndices = new int[] { 1, 2 };

    // Load TIFF frames - perfect for scanned documents
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Execute OCR to read text from image using IronOCR
    OcrResult result = ocr.Read(input);

    // Output the extracted text
    Console.WriteLine(result.Text);
}
using IronOcr;

// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();

// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
    // Process specific pages from multi-page TIFF files
    int[] pageIndices = new int[] { 1, 2 };

    // Load TIFF frames - perfect for scanned documents
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Execute OCR to read text from image using IronOCR
    OcrResult result = ocr.Read(input);

    // Output the extracted text
    Console.WriteLine(result.Text);
}
Imports IronOcr

' Initialize IronTesseract for advanced OCR operations
Private ocr As New IronTesseract()

' Create input container for processing multiple images
Using input As New OcrInput()
	' Process specific pages from multi-page TIFF files
	Dim pageIndices() As Integer = { 1, 2 }

	' Load TIFF frames - perfect for scanned documents
	input.LoadImageFrames("img\Potter.tiff", pageIndices)

	' Execute OCR to read text from image using IronOCR
	Dim result As OcrResult = ocr.Read(input)

	' Output the extracted text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Diese Konfiguration erreicht konstant nahezu perfekte Genauigkeit bei Scans mittlerer Qualität. Die LoadImageFrames-Methode verarbeitet effizient mehrseitige Dokumente und ist ideal für Batch-Verarbeitungsszenarien.


Mehrseitiges TIFF-Dokument, das Harry Potter Text zeigt, bereit für C# OCR-Verarbeitung
*Beispiel-TIFF-Dokument, das die mehrseitige Textextraktion von IronOCR demonstriert* Die Fähigkeit, Text aus Bildern und Barcodes in gescannten Dokumenten wie TIFFs zu lesen, zeigt, wie IronOCR komplexe OCR-Aufgaben vereinfacht. Die Bibliothek überzeugt bei realen Dokumenten und verarbeitet problemlos mehrseitige TIFFs und [PDF-Textextraktion](/csharp/ocr/how-to/input-pdfs/). ### Wie verarbeitet IronOCR niedrigqualitative Scans?
Niederwertiger Scan mit digitalem Rauschen, der die Bildverbesserungsfähigkeit von IronOCR zeigt
*Niedrig auflösendes Dokument mit Rauschen, das IronOCR genau mit Bildfiltern verarbeiten kann* Beim Arbeiten mit unvollkommenen Scans mit Verzerrung und digitalem Rauschen übertrifft **IronOCR andere C# OCR-Bibliotheken**. Es ist speziell für reale Szenarien konzipiert und nicht für makellose Testbilder. ```csharp // Advanced Iron Tesseract C# example for low-quality images using IronOcr; using System; var ocr = new IronTesseract(); try { using (var input = new OcrInput()) { // Load specific pages from poor-quality TIFF var pageIndices = new int[] { 0, 1 }; input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices); // Apply deskew filter to correct rotation and perspective input.Deskew(); // Critical for improving accuracy on skewed scans // Perform OCR with enhanced preprocessing OcrResult result = ocr.Read(input); // Display results Console.WriteLine("Recognized Text:"); Console.WriteLine(result.Text); } } catch (Exception ex) { Console.WriteLine($"Error during OCR: {ex.Message}"); } ``` Unter Verwendung von `Input.Deskew()` verbessert sich die Genauigkeit auf **99,8%** bei niedrigqualitativen Scans, fast gleichwertig mit hochwertigen Ergebnissen. Dies zeigt, warum IronOCR die bevorzugte Wahl für C# OCR ohne Tesseract-Komplikationen ist. Bildfilter können die Bearbeitungszeit leicht erhöhen, verkürzen aber erheblich die Gesamt-OCR-Dauer. Das richtige Gleichgewicht hängt von Ihrer Dokumentqualität ab. Für die meisten Szenarien bieten `Input.Deskew()` und `Input.DeNoise()` zuverlässige Verbesserungen der OCR-Leistung. Erfahren Sie mehr über [Bildvorverarbeitungstechniken](/csharp/ocr/tutorials/c-sharp-ocr-image-filters/). ## Wie optimiere ich die OCR-Leistung und -Geschwindigkeit? Der wichtigste Faktor, der die OCR-Geschwindigkeit beeinflusst, wenn Sie Bilder in C# in Text umwandeln, ist die Eingabequalität. Eine höhere DPI (~200 dpi) mit minimalem Rauschen liefert die schnellsten und genauesten Ergebnisse. Während IronOCR hervorragend darin ist, unvollkommene Dokumente zu korrigieren, erfordert diese Verbesserung zusätzliche Rechenzeit. Wählen Sie Bildformate mit minimalen Kompressionsartefakten. TIFF und PNG führen in der Regel zu schnelleren Ergebnissen als JPEG aufgrund geringeren digitalen Rauschens. ### Welche Bildfilter verbessern die OCR-Geschwindigkeit? Die folgenden Filter können die Leistung in Ihrem C# OCR Bild-zu-Text-Arbeitsablauf erheblich verbessern: - **`OcrInput.Rotate(double degrees)`:** Dreht Bilder im Uhrzeigersinn (negativ für gegen den Uhrzeigersinn) - **`OcrInput.Binarize()`:** Konvertiert in Schwarz/Weiß und verbessert die Leistung in Szenarien mit geringem Kontrast - **`OcrInput.ToGrayScale()`:** Konvertiert in Graustufen für mögliche Geschwindigkeitsverbesserungen - **`OcrInput.Contrast()`:** Auto-verstellt den Kontrast für bessere Genauigkeit - **`OcrInput.DeNoise()`:** Entfernt digitale Artefakte, wenn Rauschen erwartet wird - **`OcrInput.Invert()`:** Invertiert die Farben für weißen Text auf schwarzem Hintergrund - **`OcrInput.Dilate()`:** Erweitert Textgrenzen - **`OcrInput.Erode()`:** Verringert Textgrenzen - **`OcrInput.Deskew()`:** Korrigiert die Ausrichtung - unerlässlich für verzerrte Dokumente - **`OcrInput.DeepCleanBackgroundNoise()`:** Aggressive Rauschunterdrückung - **`OcrInput.EnhanceResolution`:** Verbesserte Bildqualität bei niedriger Auflösung ### Wie konfigurieren Sie IronOCR für maximale Geschwindigkeit? Verwenden Sie diese Einstellungen, um die Geschwindigkeit bei der Verarbeitung von hochwertigen Scans zu optimieren: ```csharp using IronOcr; // Configure for speed - ideal for clean documents IronTesseract ocr = new IronTesseract(); // Exclude problematic characters to speed up recognition ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\"; // Use automatic page segmentation ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto; // Select fast English language pack ocr.Language = OcrLanguage.EnglishFast; using (OcrInput input = new OcrInput()) { // Load specific pages from document int[] pageIndices = new int[] { 1, 2 }; input.LoadImageFrames(@"img\Potter.tiff", pageIndices); // Read with optimized settings OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); } ``` Diese optimierte Konfiguration hält **99,8%** Genauigkeit bei gleichzeitiger Verbesserung der Geschwindigkeit um **35%** gegenüber den Standardeinstellungen. ## Wie lese ich bestimmte Bereiche von Bildern mit C# OCR? Das Iron Tesseract C#-Beispiel unten zeigt, wie Sie gezielt bestimmte Bereiche mithilfe von `System.Drawing.Rectangle` ansprechen. Diese Technik ist von unschätzbarem Wert für die Verarbeitung standardisierter Formulare, bei denen Text an vorhersehbaren Stellen erscheint. ### Kann IronOCR zugeschnittene Bereiche für schnellere Ergebnisse verarbeiten? Mit pixelbasierten Koordinaten können Sie die OCR auf bestimmte Bereiche begrenzen, die Geschwindigkeit erheblich verbessern und unerwünschte Textextraktion verhindern: ```csharp using IronOcr; using IronSoftware.Drawing; // Initialize OCR engine for targeted region processing var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Define exact region for OCR - coordinates in pixels var contentArea = new System.Drawing.Rectangle( x: 215, y: 1250, width: 1335, height: 280 ); // Load image with specific area - perfect for forms and invoices input.AddImage("img/ComSci.png", contentArea); // Process only the defined region OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); } ``` Dieser gezielte Ansatz bringt eine **41%** Geschwindigkeitsverbesserung, während nur relevanter Text extrahiert wird. Es eignet sich ideal für strukturierte Dokumente wie [Rechnungen](/csharp/ocr/blog/using-ironocr/invoice-ocr-csharp-tutorial/), Schecks und Formulare. Die gleiche Zuschneidemethode funktioniert nahtlos mit [PDF-OCR-Operationen](/csharp/ocr/how-to/input-pdfs/). ![Computer-Dokument, das die zielgerichtete OCR-Regionsextraktion in C# zeigt](/img/tutorials/how-to-read-text-from-an-image-in-csharp-net/ComSci.png) *Dokument, das präzise regionsbasierte Textextraktion mithilfe der Rechteckauswahl von IronOCR demonstriert* ## Wie viele Sprachen unterstützt IronOCR? IronOCR bietet **125 internationale Sprachen** über praktische Sprachpakete. Laden Sie sie als DLLs von unserer Website oder über den [NuGet Package Manager](https://www.nuget.org/packages?q=IronOcr.Languages) herunter. Install language packs through the NuGet interface ([search "IronOcr.Languages"](https://www.nuget.org/packages?q=IronOcr.Languages)) or visit the [complete language pack listing](/csharp/ocr/languages/). Unterstützte Sprachen sind darunter Arabisch, Chinesisch (Vereinfacht/Traditionell), Japanisch, Koreanisch, Hindi, Russisch, Deutsch, Französisch, Spanisch und 115+ andere, die jeweils für eine genaue Texterkennung optimiert sind. ### Wie implementiert man OCR in mehreren Sprachen? Dieses IronOCR C#-Tutorial-Beispiel zeigt die Erkennung von arabischem Text: ```shell :InstallCmd Install-Package IronOcr.Languages.Arabic ```
Arabischer Text, der von IronOCR verarbeitet wird und die Unterstützung für Mehrsprachen-OCR demonstriert
*IronOCR extrahiert genau arabischen Text aus einem GIF-Bild* ```csharp // Install-Package IronOcr.Languages.Arabic using IronOcr; // Configure for Arabic language OCR var ocr = new IronTesseract(); ocr.Language = OcrLanguage.Arabic; using (var input = new OcrInput()) { // Load Arabic text image input.AddImage("img/arabic.gif"); // IronOCR handles low-quality Arabic text that standard Tesseract cannot var result = ocr.Read(input); // Save to file (console may not display Arabic correctly) result.SaveAsTextFile("arabic.txt"); } ``` ### Kann IronOCR Dokumente mit mehreren Sprachen verarbeiten? Wenn Dokumente gemischte Sprachen enthalten, konfigurieren Sie IronOCR für die Unterstützung mehrerer Sprachen: ```shell :InstallCmd Install-Package IronOcr.Languages.ChineseSimplified ``` ```csharp // Multi-language OCR configuration using IronOcr; var ocr = new IronTesseract(); // Set primary language ocr.Language = OcrLanguage.ChineseSimplified; // Add secondary languages as needed ocr.AddSecondaryLanguage(OcrLanguage.English); // Custom .traineddata files can be added for specialized recognition // ocr.AddSecondaryLanguage("path/to/custom.traineddata"); using (var input = new OcrInput()) { // Process multi-language document input.AddImage("img/MultiLanguage.jpeg"); var result = ocr.Read(input); result.SaveAsTextFile("MultiLanguage.txt"); } ``` ## Wie verarbeite ich mehrseitige Dokumente mit C# OCR? IronOCR kombiniert nahtlos mehrere Seiten oder Bilder zu einem einzigen `OcrResult`. Diese Funktion ermöglicht leistungsstarke Fähigkeiten, wie das [Erstellen von durchsuchbaren PDFs](/csharp/ocr/how-to/searchable-pdf/) und das Extrahieren von Text aus ganzen Dokumentensätzen. Kombinieren Sie verschiedene Quellen - Bilder, TIFF-Rahmen und PDF-Seiten - in einem einzigen OCR-Vorgang: ```csharp // Multi-source document processing using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { // Add various image formats input.AddImage("image1.jpeg"); input.AddImage("image2.png"); // Process specific frames from multi-frame images int[] frameNumbers = { 1, 2 }; input.AddImageFrames("image3.gif", frameNumbers); // Process all sources together OcrResult result = ocr.Read(input); // Verify page count Console.WriteLine($"{result.Pages.Count} Pages processed."); } ``` Verarbeiten Sie alle Seiten einer TIFF-Datei effizient: ```csharp using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { // Define pages to process (0-based indexing) int[] pageIndices = new int[] { 0, 1 }; // Load specific TIFF frames input.LoadImageFrames("MultiFrame.Tiff", pageIndices); // Extract text from all frames OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); Console.WriteLine($"{result.Pages.Count} Pages processed"); } ``` Konvertieren Sie TIFFs oder PDFs in durchsuchbare Formate: ```csharp using System; using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { try { // Load password-protected PDF if needed input.LoadPdf("example.pdf", "password"); // Process entire document OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); Console.WriteLine($"{result.Pages.Count} Pages recognized"); } catch (Exception ex) { Console.WriteLine($"Error processing PDF: {ex.Message}"); } } ``` ## Wie erstelle ich durchsuchbare PDFs aus Bildern? IronOCR überzeugt bei der Erstellung durchsuchbarer PDFs - eine kritische Funktion für Datenbanksysteme, SEO-Optimierung und Dokumentenzugänglichkeit. ```csharp using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { // Set document metadata input.Title = "Quarterly Report"; // Combine multiple sources input.AddImage("image1.jpeg"); input.AddImage("image2.png"); // Add specific frames from animated images int[] gifFrames = new int[] { 1, 2 }; input.AddImageFrames("image3.gif", gifFrames); // Create searchable PDF OcrResult result = ocr.Read(input); result.SaveAsSearchablePdf("searchable.pdf"); } ``` Konvertieren bestehende PDFs in durchsuchbare Versionen: ```csharp using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Set PDF metadata input.Title = "Annual Report 2024"; // Process existing PDF input.LoadPdf("example.pdf", "password"); // Generate searchable version var result = ocr.Read(input); result.SaveAsSearchablePdf("searchable.pdf"); } ``` Wenden Sie die gleiche Technik auf TIFF-Konvertierungen an: ```csharp using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Configure document properties input.Title = "Scanned Archive Document"; // Select pages to process var pageIndices = new int[] { 1, 2 }; input.LoadImageFrames("example.tiff", pageIndices); // Create searchable PDF from TIFF OcrResult result = ocr.Read(input); result.SaveAsSearchablePdf("searchable.pdf"); } ``` ## Wie exportiere ich OCR-Ergebnisse als HOCR HTML? IronOCR unterstützt den HOCR HTML-Export und ermöglicht strukturierte **PDF zu HTML**- und **TIFF zu HTML**-Konvertierungen bei gleichzeitiger Beibehaltung der Layoutinformationen: ```csharp using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Set HTML title input.Title = "Document Archive"; // Process multiple document types input.AddImage("image2.jpeg"); input.AddPdf("example.pdf", "password"); // Add TIFF pages var pageIndices = new int[] { 1, 2 }; input.AddTiff("example.tiff", pageIndices); // Export as HOCR with position data OcrResult result = ocr.Read(input); result.SaveAsHocrFile("hocr.html"); } ``` ## Kann IronOCR Barcodes zusammen mit Text lesen? IronOCR kombiniert einzigartig die Texterkennung mit [Barcode-Lesefunktionen](/csharp/ocr/how-to/barcodes/) und eliminiert die Notwendigkeit für separate Bibliotheken: ```csharp // Enable combined text and barcode recognition using IronOcr; var ocr = new IronTesseract(); // Enable barcode detection ocr.Configuration.ReadBarCodes = true; using (var input = new OcrInput()) { // Load image containing both text and barcodes input.AddImage("img/Barcode.png"); // Process both text and barcodes var result = ocr.Read(input); // Extract barcode data foreach (var barcode in result.Barcodes) { Console.WriteLine($"Barcode Value: {barcode.Value}"); Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}"); } } ``` ## Wie greife ich auf detaillierte OCR-Ergebnisse und Metadaten zu? Das IronOCR-Ergebnisobjekt bietet umfassende Daten, die fortgeschrittene Entwickler für anspruchsvolle Anwendungen nutzen können. Jedes `OcrResult` enthält hierarchische Sammlungen: Seiten, Absätze, Zeilen, Wörter und Zeichen. Alle Elemente enthalten detaillierte Metadaten wie Standort, Schriftinformationen und Vertrauenswerte. Einzelelemente (Absätze, Wörter, Barcodes) können als Bilder oder Bitmaps für die weitere Verarbeitung exportiert werden: ```csharp using System; using IronOcr; using IronSoftware.Drawing; // Configure with barcode support IronTesseract ocr = new IronTesseract { Configuration = { ReadBarCodes = true } }; using OcrInput input = new OcrInput(); // Process multi-page document int[] pageIndices = { 1, 2 }; input.LoadImageFrames(@"img\Potter.tiff", pageIndices); OcrResult result = ocr.Read(input); // Navigate the complete results hierarchy foreach (var page in result.Pages) { // Page-level data int pageNumber = page.PageNumber; string pageText = page.Text; int pageWordCount = page.WordCount; // Extract page elements OcrResult.Barcode[] barcodes = page.Barcodes; AnyBitmap pageImage = page.ToBitmap(); double pageWidth = page.Width; double pageHeight = page.Height; foreach (var paragraph in page.Paragraphs) { // Paragraph properties int paragraphNumber = paragraph.ParagraphNumber; string paragraphText = paragraph.Text; double paragraphConfidence = paragraph.Confidence; var textDirection = paragraph.TextDirection; foreach (var line in paragraph.Lines) { // Line details including baseline information string lineText = line.Text; double lineConfidence = line.Confidence; double baselineAngle = line.BaselineAngle; double baselineOffset = line.BaselineOffset; foreach (var word in line.Words) { // Word-level data string wordText = word.Text; double wordConfidence = word.Confidence; // Font information (when available) if (word.Font != null) { string fontName = word.Font.FontName; double fontSize = word.Font.FontSize; bool isBold = word.Font.IsBold; bool isItalic = word.Font.IsItalic; } foreach (var character in word.Characters) { // Character-level analysis string charText = character.Text; double charConfidence = character.Confidence; // Alternative character choices for spell-checking OcrResult.Choice[] alternatives = character.Choices; } } } } } ``` ## Zusammenfassung IronOCR bietet C#-Entwicklern die fortschrittlichste [Tesseract-API-Implementierung](/csharp/ocr/), die nahtlos über Windows, Linux und Mac hinweg läuft. Seine Fähigkeit, Text aus Bildern mit IronOCR genau zu lesen - auch aus unvollkommenen Dokumenten - hebt es von grundlegenden OCR-Lösungen ab. Die einzigartigen Funktionen der Bibliothek umfassen integriertes Barcode-Lesen und die Fähigkeit, Ergebnisse als durchsuchbare PDFs oder HOCR HTML zu exportieren, Funktionen, die in Standard-Tesseract-Implementierungen nicht verfügbar sind. ### Schritte voraus Um IronOCR weiter zu meistern: - Entdecken Sie unseren [umfassenden Einstiegsguide](/csharp/ocr/docs/) - Durchsuchen Sie [praktische C#-Codebeispiele](/csharp/ocr/examples/simple-csharp-ocr-tesseract/) - Siehe die [detaillierte API-Dokumentation](/csharp/ocr/object-reference/) ### Quellcodedownload - [GitHub-Repository](https://github.com/iron-software/IronOcr.Examples/tree/main/src/IronSoftware.IronOCR.Examples/IronSoftware.IronOCR.Examples) - [Vollständigen Quellcode herunterladen](/downloads/assets/tutorials/how-to-read-text-from-an-image-in-csharp-net/CSharp-Image-to-Text.zip) Bereit, die C# OCR Bild-zu-Text-Konvertierung in Ihren Anwendungen zu implementieren? [Download IronOCR](download-modal) and start your [kostenlose Testversion](trial-license).

Häufig gestellte Fragen

Wie kann ich Bilder in C# ohne Verwendung von Tesseract in Text umwandeln?

Sie können IronOCR verwenden, um Bilder in C# ohne Tesseract in Text umzuwandeln. IronOCR vereinfacht den Prozess mit eingebauten Methoden, die die Umwandlung von Bild zu Text direkt abwickeln.

Wie verbessere ich die OCR-Genauigkeit bei schlechten Bildern?

IronOCR bietet Bildfilter wie Input.Deskew() und Input.DeNoise(), die zur Verbesserung von Bildern von schlechter Qualität durch Begradigung und Rauschunterdrückung verwendet werden können, wodurch die OCR-Genauigkeit erheblich verbessert wird.

Welche Schritte sind nötig, um Text aus einem mehrseitigen Dokument mit OCR in C# zu extrahieren?

Um Text aus mehrseitigen Dokumenten zu extrahieren, können Sie mit IronOCR jede Seite mit Methoden wie LoadPdf() für PDFs oder TIFF-Dateien laden und verarbeiten und jede Seite effektiv in Text umwandeln.

Ist es möglich, Barcodes und Text gleichzeitig aus einem Bild zu lesen?

Ja, IronOCR kann sowohl Text als auch Barcodes aus einem einzelnen Bild lesen. Sie können das Barcode-Lesen mit ocr.Configuration.ReadBarCodes = true aktivieren, was die Extraktion sowohl von Text- als auch Barcode-Daten ermöglicht.

Wie kann ich OCR für die Verarbeitung von Dokumenten in mehreren Sprachen einrichten?

IronOCR unterstützt über 125 Sprachen und ermöglicht es Ihnen, eine Primärsprache mit ocr.Language einzustellen und zusätzliche Sprachen mit ocr.AddSecondaryLanguage() für die mehrsprachige Dokumentenverarbeitung hinzuzufügen.

Welche Methoden gibt es, um OCR-Ergebnisse in verschiedenen Formaten zu exportieren?

IronOCR bietet mehrere Methoden zum Exportieren von OCR-Ergebnissen, wie z.B. SaveAsSearchablePdf() für PDFs, SaveAsTextFile() für reinen Text und SaveAsHocrFile() für das HOCR-HTML-Format.

Wie kann ich die OCR-Verarbeitungsgeschwindigkeit für große Bilddateien optimieren?

Um die OCR-Verarbeitungsgeschwindigkeit zu optimieren, verwenden Sie IronOCR's OcrLanguage.EnglishFast für schnellere Spracherkennung und definieren Sie bestimmte Bereiche für OCR mit System.Drawing.Rectangle, um die Verarbeitungszeit zu reduzieren.

Wie gehe ich mit der OCR-Verarbeitung geschützter PDF-Dateien um?

Beim Umgang mit geschützten PDFs verwenden Sie die LoadPdf()-Methode zusammen mit dem richtigen Passwort. IronOCR verarbeitet bildbasierte PDFs, indem es Seiten automatisch in Bilder konvertiert für die OCR-Verarbeitung.

Was sollte ich tun, wenn die OCR-Ergebnisse nicht genau sind?

Wenn OCR-Ergebnisse ungenau sind, ziehen Sie in Betracht, die Bildverbesserungsfunktionen von IronOCR wie Input.Deskew() und Input.DeNoise() zu verwenden, und stellen Sie sicher, dass die richtigen Sprachpakete installiert sind.

Kann ich den OCR-Prozess anpassen, um bestimmte Zeichen auszuschließen?

Ja, IronOCR ermöglicht die Anpassung des OCR-Prozesses durch die Verwendung der BlackListCharacters-Eigenschaft, um bestimmte Zeichen auszuschließen und so die Genauigkeit zu verbessern und die Verarbeitung zu beschleunigen, indem sich nur auf relevanten Text konzentriert wird.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,044,537 | Version: 2025.11 gerade veröffentlicht