IRONSOFTWAREHOME

Lesen aus Datenströmen in C# für OCR

Curtis Chau
Curtis Chau
Updated: 4. Juni 2026

IronOCR liest Bilddaten direkt aus Streams in C#, indem der Stream an die OcrInput oder OcrImageInput Konstruktoren übergeben wird, wodurch eine effiziente OCR-Verarbeitung ohne Speichern von Dateien auf der Festplatte ermöglicht wird.

Ein Stream ist ein kontinuierlicher Fluss von binären Informationen, der gelesen oder geschrieben werden kann. In der Programmierung verarbeiten Streams effizient Daten, die zu groß für den Speicher sind, indem sie in überschaubare Teile zerlegt werden.

Die Importmethoden von IronOCR akzeptieren Bilddatenströme direkt. Übergeben Sie die Streamdaten an eine Importmethode, die alle notwendigen Schritte automatisch durchführt. Für fortgeschrittene Szenarien erkunden Sie die OcrInput Klasse, die umfangreiche Optionen zur Vorbereitung verschiedener Eingabeformate bietet.

Schnellstart: Verwenden Sie einen Stream für OCR-Eingaben in Sekunden

Dieses Beispiel demonstriert eine sofortige OCR, indem eine System.IO.Stream an IronOCR übergeben wird. Dadurch werden Dateipfade umgangen und erkanntes Textmaterial mit minimalem Code erfasst.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

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

    using var input = new IronOcr.OcrInput(stream);
    var result = new IronOcr.IronTesseract().Read(input);
    C#
  3. 3Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
    arrow pointer

Wie lese ich Datenströme mit IronOCR?

Zuerst instanziieren Sie die IronTesseract Klasse, um OCR durchzuführen. Verwenden Sie die FromFile Methode von AnyBitmap, um die Bilddatei zu importieren. Dieses AnyBitmap Objekt konvertiert die Bilddaten in einen Stream. Verwenden Sie als Nächstes die using Anweisung, um das OcrImageInput Objekt zu erstellen, indem Sie den Bildstream mit der GetStream Methode übergeben. Verwenden Sie schließlich die Read Methode, um OCR durchzuführen.

using IronOcr;
using IronSoftware.Drawing;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Read image file to AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Import image stream
using var imageInput = new OcrImageInput(anyBitmap.GetStream());
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

Stream-basierte OCR kommt Webanwendungen zugute, die Bild-Uploads empfangen, Bilder aus Datenbanken verarbeiten oder temporäre Daten verarbeiten, die nicht auf die Festplatte geschrieben werden sollen. Der Stream-Ansatz integriert sich nahtlos mit System.Drawing Objekten und anderen Bildbearbeitungsbibliotheken.

Warum Streams für OCR verwenden?

Die Arbeit mit Streams bietet mehrere Vorteile for .NET-Entwickler:

  1. Speichereffizienz: Verarbeiten Sie Daten in Stücken, anstatt ganze Dateien in den Speicher zu laden
  2. Sicherheit: Verarbeiten Sie vertrauliche Dokumente, ohne temporäre Dateien auf der Festplatte zu erstellen
  3. Leistung: Beseitigen Sie E/A-Overhead durch Dateisystemoperationen
  4. Flexibilität: Arbeiten Sie mit Web-Uploads, Datenbank-BLOBs und In-Memory-Transformationen

Für die Verarbeitung mehrseitiger Dokumente oder die Verarbeitung von PDF-Streams behält IronOCR die gleiche einfache API bei und bietet eine robuste Leistung. Wenn Sie mit gescannten Dokumenten arbeiten, können Sie auch die Fähigkeiten von IronOCR nutzen, um gescannte Dokumente effizient durch Stream Processing zu lesen.

Wie kann ich einen Scanbereich für Stream OCR festlegen?

Um die Leistung bei großen Bildern zu verbessern und spezifische Auslesungen aus bestimmten Regionen zu erhalten, nutzen Sie die CropRectangle Klasse. Der OcrImageInput Konstruktor akzeptiert ein CropRectangle Objekt als zweiten Parameter, wodurch Sie angeben können, welcher Bereich des Bilddokuments gelesen werden soll. Das folgende Codebeispiel legt fest, dass nur die Kapitelnummer und der Titelbereich gelesen werden sollen.

using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Read image file to AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);

// Add image
using var imageInput = new OcrImageInput(anyBitmap.GetStream(), ContentArea: scanRegion);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output the result to console
Console.WriteLine(ocrResult.Text);

Diese Technik ist besonders nützlich, wenn Sie einen bestimmten Bereich eines Bildes OCR oder strukturierte Dokumente übersetzen müssen, in denen Text an vorhersehbaren Stellen erscheint. Für komplexere Szenarien, die Tabellen oder strukturierte Daten beinhalten, erfahren Sie, wie man Tabellen in Dokumenten liest.

Wie sieht der Scanbereich in der Ausgabe aus?

OCR-Demo: Dokument in Photo Viewer mit extrahiertem Text "Chapter Eight The Deathday Party", der in der Debug-Konsole angezeigt wird

Welche fortgeschrittenen Stream-Verarbeitungstechniken kann ich verwenden?

Bei der Arbeit mit Streams sollten Sie zusätzliche IronOCR-Funktionen nutzen, um die Erkennungsgenauigkeit zu verbessern. Die Bildoptimierungsfilter können vor der OCR-Verarbeitung direkt auf Streamdaten angewendet werden:

using IronOcr;
using IronSoftware.Drawing;
using System.IO;

// Process stream with filters
public string ProcessStreamWithFilters(Stream imageStream)
{
    IronTesseract ocrTesseract = new IronTesseract();
    
    // Configure for better accuracy
    ocrTesseract.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
    ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
    
    using var input = new OcrImageInput(imageStream);
    
    // Apply preprocessing filters
    input.Deskew();
    input.DeNoise();
    input.Sharpen();
    
    var result = ocrTesseract.Read(input);
    return result.Text;
}

Für eine verbesserte Bildverarbeitung sollten Sie den Filter-Assistenten verwenden, um automatisch die besten Vorverarbeitungsschritte für Ihre spezifischen Dokumenttypen zu bestimmen. Darüber hinaus kann die Funktion Bildausrichtung korrigieren die OCR-Genauigkeit bei gedrehten oder schiefen Bildern in Ihren Datenströmen erheblich verbessern.

Wie arbeite ich mit verschiedenen Stream-Quellen?

IronOCR verarbeitet verschiedene Stream-Quellen nahtlos. Ob es um die Verarbeitung von Uploads aus einem Webformular, das Abrufen von Bildern aus einer Datenbank oder die Konvertierung zwischen Formaten geht, die API bleibt konsistent:

// From MemoryStream
byte[] imageBytes = GetImageBytesFromDatabase();
using var memoryStream = new MemoryStream(imageBytes);
using var input = new OcrImageInput(memoryStream);

// From FileStream
using var fileStream = new FileStream("document.png", FileMode.Open);
using var input2 = new OcrImageInput(fileStream);

// From network stream
using var webClient = new WebClient();
using var networkStream = webClient.OpenRead("https://example.com/image.jpg");
using var input3 = new OcrImageInput(networkStream);

Um optimale Ergebnisse zu erzielen, sollten Sie die DPI-Einstellungen anpassen, wenn Sie mit niedrig aufgelösten Streams arbeiten. IronOCR führt die DPI-Erkennung automatisch durch, aber eine manuelle Konfiguration kann die Genauigkeit für bestimmte Anwendungsfälle verbessern. Wenn Sie mit mehrseitigen Dokumenten arbeiten, sollten Sie den Umgang mit mehrseitigen TIFF- und GIF-Dateien durch Stream Processing erkunden.

Wie behandle ich OCR-Ergebnisse aus Datenströmen?

Nach der Verarbeitung Ihres Datenstroms liefert IronOCR umfangreiche Ergebnisobjekte, die über eine einfache Textextraktion hinausgehen. Die OcrResult Klasse enthält detaillierte Informationen über erkannte Texte, einschließlich Vertrauenswerten, Positionierung und Struktur:

// Process stream and analyze results
using var input = new OcrImageInput(stream);
var result = new IronTesseract().Read(input);

// Access detailed results
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber} Confidence: {page.Confidence}%");
    
    foreach (var paragraph in page.Paragraphs)
    {
        Console.WriteLine($"Paragraph: {paragraph.Text}");
        Console.WriteLine($"Location: X={paragraph.X}, Y={paragraph.Y}");
    }
}

// Export results
string text = result.Text;
string searchablePdf = result.SaveAsSearchablePdf("output.pdf");
string hocrHtml = result.SaveAsHocrFile("output.html");
C#

Das Ergebnisobjekt bietet auch Methoden für den Export in durchsuchbare PDFs oder das hOCR-HTML-Format, wodurch die Erstellung durchsuchbarer Dokumentenarchive aus Ihren Stream-Eingaben erleichtert wird. Zu Debugging-Zwecken können Sie die Highlight-Texte-Funktion verwenden, um zu visualisieren, was IronOCR in Ihren Bildern entdeckt hat.

Welche Leistungsaspekte sollte ich kennen?

Wenn Sie mehrere Datenströme verarbeiten oder OCR-Lösungen mit hohem Durchsatz implementieren, sollten Sie diese Optimierungsstrategien berücksichtigen:

  1. IronTesseract Instanzen wiederverwenden: Erstellen Sie eine einzelne Instanz und verwenden Sie sie für mehrere Operationen wieder
  2. Fortschrittsverfolgung implementieren: Für große Streams verwenden Sie die Fortschrittsverfolgung, um den Verarbeitungsstatus zu überwachen
  3. Parallel verarbeiten: IronOCR unterstützt die gleichzeitige Verarbeitung für mehrere Streams
  4. Bildqualität optimieren: Verarbeiten Sie Streams vor, um optimale Auflösung und Klarheit sicherzustellen

Um eine maximale Leistung zu erzielen, sollten Sie die Optionen für die schnelle OCR-Konfiguration prüfen und die Implementierung der Multithreading-Verarbeitung für Stapelverarbeitungen in Betracht ziehen. Wenn Sie mit zeitkritischen Anwendungen arbeiten, kann das Verständnis von Zeitüberschreitungen Ihnen helfen, lang andauernde OCR-Vorgänge effektiv zu verwalten.

Wie behebe ich häufige Stream-Probleme?

Bei der Arbeit mit Strömen können Sie auf besondere Herausforderungen stoßen. Hier finden Sie Lösungen für häufige Szenarien:

  • Stream-Position: Setzen Sie immer die Stream-Position auf 0 zurück, bevor Sie sie an IronOCR übergeben
  • Entsorgung: Verwenden Sie using Anweisungen, um eine ordnungsgemäße Freigabe von Ressourcen sicherzustellen
  • Formatunterstützung: IronOCR unterstützt verschiedene Bildformate, einschließlich JPEG, PNG, TIFF und BMP durch Streams
  • Speicherverwaltung: Für große Streams erwägen Sie die Verarbeitung in Stücken oder Streaming-Ansätze

Bei komplexen Dokumenten oder wenn die Standard-OCR keine zufriedenstellenden Ergebnisse liefert, können die Computer-Vision-Funktionen helfen, den Text genauer zu lokalisieren und zu extrahieren. Wenn Sie mit minderwertigen Datenströmen arbeiten, sollten Sie außerdem den Leitfaden Fixing low quality scans zu Vorverarbeitungstechniken lesen, die die Erkennungsraten erheblich verbessern können.

Ausführlichere Informationen zur Arbeit mit Streams und anderen Eingabemethoden finden Sie in unseren umfassenden How-to-Guides und Codebeispielen.

Häufig gestellte Fragen

Wie kann ich OCR an Bilddaten durchführen, ohne sie vorher auf der Festplatte zu speichern?

Mit IronOCR können Sie Bildströme direkt verarbeiten, indem Sie sie an die Konstruktoren OcrInput oder OcrImageInput übergeben. Dies ermöglicht eine effiziente OCR-Verarbeitung ohne die Erstellung temporärer Dateien, was ideal für die Verarbeitung von Web-Uploads, Datenbank-BLOBs oder sensiblen Dokumenten ist, die nicht auf die Festplatte gelangen sollen.

Welche Arten von Datenströmen können als Input für die OCR-Verarbeitung verwendet werden?

IronOCR akzeptiert jeden System.IO.Stream, der Bilddaten enthält. Dazu gehören Speicherströme aus Web-Uploads, Ströme aus BLOB-Feldern von Datenbanken oder Ströme, die von Bildbearbeitungsbibliotheken erstellt wurden. Die Bibliothek führt alle erforderlichen Konvertierungsschritte automatisch durch, wenn Sie den Stream an OcrInput oder OcrImageInput übergeben.

Wie kann ich in C# am einfachsten OCR für einen Stream durchführen?

Die schnellste Methode ist, ein OcrInput-Objekt mit Ihrem Stream zu erstellen und die Read-Methode aufzurufen: 'using var input = new IronOcr.OcrInput(stream); var result = new IronOcr.IronTesseract().Read(input);'. Dieser minimale Code führt die OCR durch und gibt den erkannten Text sofort zurück.

Warum sollte ich für OCR Streams anstelle von Dateipfaden verwenden?

Stream-basierte OCR mit IronOCR bietet mehrere Vorteile: Speichereffizienz durch die Verarbeitung von Daten in Chunks, erhöhte Sicherheit durch die Vermeidung von temporären Dateien auf der Festplatte, verbesserte Leistung durch die Beseitigung von Datei-E/A-Overhead und größere Flexibilität bei der Arbeit mit Web-Uploads oder Datenbank-BLOBs.

Kann ich einen bestimmten Bereich eines Bildstroms angeben, der gelesen werden soll?

Ja, IronOCR ermöglicht es Ihnen, den Lesebereich zu definieren, indem Sie bei der Verarbeitung von Datenströmen einen Beschnittbereich angeben. Mit dieser Funktion können Sie sich bei der OCR auf bestimmte Teile des Bildes konzentrieren, ohne das gesamte Dokument zu verarbeiten, was sowohl die Geschwindigkeit als auch die Genauigkeit verbessert.

Wie lässt sich die Stream-Verarbeitung in andere Bildbearbeitungsbibliotheken integrieren?

Der Stream-Ansatz von IronOCR lässt sich nahtlos in System.Drawing-Objekte und andere .NET-Bibliotheken zur Bildbearbeitung integrieren. Sie können die AnyBitmap-Klasse verwenden, um Bilder mit der GetStream-Methode in Streams zu konvertieren, was die Kombination von OCR mit anderen Bildverarbeitungs-Workflows erleichtert.

What should I consider for optimal performance with stream-based OCR?

For optimal performance, reuse `IronTesseract` instances, implement progress tracking, process in parallel, and optimize image quality before processing. These strategies can enhance throughput and efficiency for high-volume OCR tasks.

What are common troubleshooting tips for using streams in IronOCR?

Common troubleshooting tips include ensuring stream position is reset to `0` before processing, using `using` statements for resource cleanup, and confirming that all supported image formats are correctly handled.

How does IronOCR improve OCR for low-quality streams?

IronOCR offers preprocessing techniques to enhance OCR on low-quality streams. By applying filters and other image optimizations, recognition rates can significantly improve, especially for documents with poor scan quality.

Can IronOCR process multiple page documents using streams?

Yes, IronOCR can efficiently process multiple page documents through stream handling, maintaining a user-friendly API and offering robust performance suitable for PDF streams and other multi-page formats.

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 Handbücher.

...
Weiterlesen

Bereit anzufangen?

Nuget Downloads 6,236,385Version:2026.9gerade veröffentlicht

Holen Sie sich Ihre KOSTENLOSE

30-Tage-Testlizenz sofort.

bullet_checkedKeine Kreditkarte oder Kontoerstellung erforderlich
bullet_testTesten Sie in der Produktion
ohne Wasserzeichen
bullet_calendar30 Tage voll
funktionsfähiges Produkt
bullet_support24/5 technischer
Support während der Testphase
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach "IronOCR"
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows Installer hier herunter.

  1. Laden Sie IronOCR herunter und entpacken Sie es in einem Ordner wie ~/Libs in Ihrem Lösungsverzeichnis.
  2. Klicken Sie im Visual Studio Solution Explorer mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronOCR.dll"

Lizenzen von $999

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.