TIFF & GIF Dateien lesen – PDF Text extrahieren und Bild zu Text mit IronOCR C
IronOCR ermöglicht das Lesen von Text aus mehrteiligen TIFF- und GIF-Dateien in C# mit der Klasse OcrImageInput und einem einzigen Methodenaufruf Read. Diese OCR Software unterstützt sowohl einseitige als auch mehrseitige Dokumente für zuverlässige Texterkennung ohne komplexe Konfiguration.
TIFF (Tagged Image File Format) ist ein Format für hochwertige Bilder. Sie unterstützt eine verlustfreie Komprimierung und eignet sich daher für gescannte Dokumente und professionelle Fotografie.
GIF (Graphics Interchange Format) wird für einfache Webbilder und Animationen verwendet. Sie unterstützt sowohl verlustfreie als auch verlustbehaftete Komprimierung und kann Animationen in einer einzigen Datei enthalten.
Schnellstart: OCR mit TIFF- oder GIF-Dateien mit mehreren Einzelbildern
Mit IronOCR können Sie mithilfe von OcrImageInput und einem Read-Aufruf Text aus mehrseitigen TIFFs oder animierten GIFs lesen.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
using IronOcr; var result = new IronTesseract().Read(new OcrImageInput("Potter.tiff")); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Herunterladen einer C#-Bibliothek zum Lesen von Mehrbild-GIFs und TIFFs
- Verwendung von **OcrImageInput** zum Importieren von Einzel-/Multibild-TIFFs
- Aufruf der Methode `Read` zur Durchführung der OCR
- Verwenden Sie die gleiche Klasse, um GIF-Bilder zu importieren
- Definieren Sie den Lesebereich durch Angabe des Ausschnittes
Wie lese ich TIFF-Dateien mit einem oder mehreren Frames?
Um OCR durchzuführen, instanziieren Sie die Klasse IronTesseract. Verwenden Sie die Anweisung using, um das Objekt OcrImageInput zu erstellen. Dieser Konstruktor unterstützt sowohl Einzelframes als auch mehrseitige TIFF- und TIF-Formate. Wenden Sie die Methode Read an, um eine OCR-Texterkennung auf die importierte TIFF-Datei durchzuführen.
:path=/static-assets/ocr/content-code-examples/how-to/input-tiff-gif-read-tiff.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Import TIFF/TIF
using var imageInput = new OcrImageInput("Potter.tiff");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Import TIFF/TIF
Private imageInput = New OcrImageInput("Potter.tiff")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
Warum verarbeitet IronOCR automatisch Multi-Frame TIFFs?
IronOCR erkennt und verarbeitet automatisch alle Frames einer TIFF-Datei. Beim Laden eines mehrseitigen TIFF-Dokuments durchläuft die Bibliothek jeden Frame, wendet die OCR auf jede Seite an und fasst die Ergebnisse in einem einzigen OcrResult-Objekt zusammen. Durch die automatische Bearbeitung entfällt die komplexe Logik der Frame-by-Frame-Verarbeitung. Beispiele für mehrseitige TIFF-Dateien finden Sie in unserem multipage TIFF OCR tutorial.
Für leistungskritische Anwendungen sollten Sie eine schnelle OCR-Konfiguration implementieren, um die Verarbeitungsgeschwindigkeit zu optimieren. Die Multithreaded Tesseract OCR-Funktionen der Bibliothek gewährleisten eine effiziente Stapelverarbeitung.
Was passiert beim Lesen mehrseitiger TIFF-Dokumente?
Bei der Verarbeitung mehrseitiger TIFF-Dokumente muss IronOCR:
- Lädt alle Frames effizient in den Speicher
- Wendet Vorverarbeitung auf jeden Frame an, falls konfiguriert
- Durchführt OCR auf Seiten der Reihe nach
- Zusammenfassung der Ergebnisse unter Beibehaltung der Seitenreihenfolge
Zugriff auf einzelne Seitenergebnisse:
using IronOcr;
IronTesseract ocrTesseract = new IronTesseract();
// Import multi-page TIFF
using var imageInput = new OcrImageInput("multipage-document.tiff");
// Perform OCR
OcrResult result = ocrTesseract.Read(imageInput);
// Access results by page
foreach (var page in result.Pages)
{
Console.WriteLine($"Page {page.PageNumber}:");
Console.WriteLine(page.Text);
Console.WriteLine("---");
}
using IronOcr;
IronTesseract ocrTesseract = new IronTesseract();
// Import multi-page TIFF
using var imageInput = new OcrImageInput("multipage-document.tiff");
// Perform OCR
OcrResult result = ocrTesseract.Read(imageInput);
// Access results by page
foreach (var page in result.Pages)
{
Console.WriteLine($"Page {page.PageNumber}:");
Console.WriteLine(page.Text);
Console.WriteLine("---");
}
Imports IronOcr
Dim ocrTesseract As New IronTesseract()
' Import multi-page TIFF
Using imageInput As New OcrImageInput("multipage-document.tiff")
' Perform OCR
Dim result As OcrResult = ocrTesseract.Read(imageInput)
' Access results by page
For Each page In result.Pages
Console.WriteLine($"Page {page.PageNumber}:")
Console.WriteLine(page.Text)
Console.WriteLine("---")
Next
End Using
Implementieren Sie für lange Operationen ein Abbruch-Token für die Möglichkeit des Abbruchs.
Wie kann ich einzelne TIFF-Frames separat verarbeiten?
Verarbeiten Sie Frames einzeln, um Speicherplatz zu sparen oder um verschiedene Bildkorrekturfilter auf bestimmte Seiten anzuwenden:
using IronOcr;
using System.Drawing;
// Configure OCR for individual frame processing
IronTesseract ocrTesseract = new IronTesseract();
// Load and split TIFF frames
using var multiFrameInput = new OcrImageInput("document.tiff");
// Process specific pages (0-indexed)
var pageIndices = new[] { 0, 2, 4 }; // Process pages 1, 3, and 5 only
foreach (int pageIndex in pageIndices)
{
using var pageInput = new OcrImageInput("document.tiff", PageIndices: new[] { pageIndex });
// Apply page-specific preprocessing if needed
pageInput.DeNoise();
pageInput.Deskew();
var pageResult = ocrTesseract.Read(pageInput);
Console.WriteLine($"Page {pageIndex + 1} text: {pageResult.Text}");
}
using IronOcr;
using System.Drawing;
// Configure OCR for individual frame processing
IronTesseract ocrTesseract = new IronTesseract();
// Load and split TIFF frames
using var multiFrameInput = new OcrImageInput("document.tiff");
// Process specific pages (0-indexed)
var pageIndices = new[] { 0, 2, 4 }; // Process pages 1, 3, and 5 only
foreach (int pageIndex in pageIndices)
{
using var pageInput = new OcrImageInput("document.tiff", PageIndices: new[] { pageIndex });
// Apply page-specific preprocessing if needed
pageInput.DeNoise();
pageInput.Deskew();
var pageResult = ocrTesseract.Read(pageInput);
Console.WriteLine($"Page {pageIndex + 1} text: {pageResult.Text}");
}
Imports IronOcr
Imports System.Drawing
' Configure OCR for individual frame processing
Dim ocrTesseract As New IronTesseract()
' Load and split TIFF frames
Using multiFrameInput As New OcrImageInput("document.tiff")
' Process specific pages (0-indexed)
Dim pageIndices As Integer() = {0, 2, 4} ' Process pages 1, 3, and 5 only
For Each pageIndex As Integer In pageIndices
Using pageInput As New OcrImageInput("document.tiff", PageIndices:=New Integer() {pageIndex})
' Apply page-specific preprocessing if needed
pageInput.DeNoise()
pageInput.Deskew()
Dim pageResult = ocrTesseract.Read(pageInput)
Console.WriteLine($"Page {pageIndex + 1} text: {pageResult.Text}")
End Using
Next
End Using
Für die fortgeschrittene Konfiguration siehe den Tesseract detailed configuration guide.
Wie kann ich GIF-Dateien für OCR lesen?
Geben Sie den Pfad zur GIF-Datei beim Erstellen von OcrImageInput an. Der Konstruktor importiert das Bild. Bei animierten GIFs extrahiert IronOCR alle Frames und verarbeitet sie als Einzelbilder.
:path=/static-assets/ocr/content-code-examples/how-to/input-tiff-gif-read-gif.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Import GIF
using var imageInput = new OcrImageInput("Potter.gif");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Import GIF
Private imageInput = New OcrImageInput("Potter.gif")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
Für Anfänger bietet unser einfaches C# OCR Tesseract-Tutorial eine Einführung in die grundlegenden OCR-Operationen.
Warum funktioniert OCR bei animierten GIFs?
Animierte GIFs enthalten mehrere Einzelbilder. IronOCR extrahiert jeden Frame und verarbeitet ihn separat. Dies funktioniert gut für:
- Bildschirmaufnahmen als GIFs gespeichert
- Animierte Tutorials mit Textanweisungen
- Mehrstufige Dokumentation im GIF-Format
- Legacy-Systeme exportieren Berichte als GIFs
Der Text aus jedem Frame wird erfasst und chronologisch geordnet. Bei Bildern mit Ausrichtungsproblemen kann IronOCR die Bildausrichtung automatisch korrigieren.
Wann sollte ich das GIF-Format für OCR verwenden?
GIFs haben eine begrenzte Farbpalette (256 Farben), sind aber weit verbreitet in:
- Webinhalte: Online-Tutorials und Dokumentationen
- Legacy-Exporte: Ältere Anwendungen im GIF-Format
- Bildschirmaufnahmen: Screenshot-Tools mit GIF-Standard
- Kleine Dateigrößen: Wenn der Speicherplatz begrenzt ist
Die besten Ergebnisse erzielen Sie, wenn Sie GIFs mit IronOcrs DPI-Einstellungen optimieren. Wenden Sie OCR-Bildoptimierungsfilter an, um die Erkennung zu verbessern.
Was sind häufige Probleme mit GIF OCR?
GIF-Dateien stellen eine Herausforderung dar:
- Farbeinschränkungen: Die Begrenzung auf 256 Farben beeinträchtigt die Klarheit des Textes
- Komprimierungsartefakte: Dithering stört die Erkennung
- Niedrige Auflösung: Oft bei 72-96 DPI gespeichert
Vorverarbeitungsfilter anwenden:
using IronOcr;
IronTesseract ocrTesseract = new IronTesseract();
// Import GIF with preprocessing
using var imageInput = new OcrImageInput("low-quality.gif");
// Apply filters to improve quality
imageInput.ToGrayScale(); // Convert to grayscale
imageInput.Contrast(1.5); // Increase contrast
imageInput.DeNoise(); // Remove noise
imageInput.EnhanceResolution(); // Upscale for better OCR
// Perform OCR with enhanced image
OcrResult result = ocrTesseract.Read(imageInput);
using IronOcr;
IronTesseract ocrTesseract = new IronTesseract();
// Import GIF with preprocessing
using var imageInput = new OcrImageInput("low-quality.gif");
// Apply filters to improve quality
imageInput.ToGrayScale(); // Convert to grayscale
imageInput.Contrast(1.5); // Increase contrast
imageInput.DeNoise(); // Remove noise
imageInput.EnhanceResolution(); // Upscale for better OCR
// Perform OCR with enhanced image
OcrResult result = ocrTesseract.Read(imageInput);
Imports IronOcr
Dim ocrTesseract As New IronTesseract()
' Import GIF with preprocessing
Using imageInput As New OcrImageInput("low-quality.gif")
' Apply filters to improve quality
imageInput.ToGrayScale() ' Convert to grayscale
imageInput.Contrast(1.5) ' Increase contrast
imageInput.DeNoise() ' Remove noise
imageInput.EnhanceResolution() ' Upscale for better OCR
' Perform OCR with enhanced image
Dim result As OcrResult = ocrTesseract.Read(imageInput)
End Using
Für schwierige Bilder siehe Fixing Low-Quality Scans with Tesseract.
Wie spezifiziere ich einen Scanbereich für bessere Leistung?
Fügen Sie beim Erstellen von OcrImageInput ein CropRectangle ein, um einen spezifischen Bereich für die OCR zu definieren. Dadurch wird die Leistung bei großen Dokumenten verbessert. Siehe unseren Leitfaden zu OCR-Regionen.
:path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);
// Add image
using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Output the result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Specify crop region
Private scanRegion As New Rectangle(800, 200, 900, 400)
' Add image
Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output the result to console
Console.WriteLine(ocrResult.Text)
Warum verbessert Cropping die OCR-Leistung?
Cropping verbessert die Leistung durch:
- Reduzierter Verarbeitungsbereich: Weniger Pixel bedeuten schnellere Ausführung
- Fokussierte Erkennung: OCR optimiert für bestimmte Regionen
- Speichereffizienz: Kleineres Arbeitsset reduziert die RAM-Nutzung
- Rauschunterdrückung: Schließt irrelevante Bereiche aus
Die Verarbeitung bestimmter Regionen kann 5-10 mal schneller sein als ganze Seiten. Für die Echtzeit-Überwachung implementieren Sie Fortschrittsverfolgung.
Wann sollte ich regionsspezifische OCR verwenden?
Verwenden Sie regionalspezifische OCR für:
- Formularverarbeitung: Bestimmte Felder extrahieren
- Kopf-/Fußzeilen: Zugriff auf Dokument-Metadaten
- Tabellen: Fokus auf Datentabellen
- Stapelverarbeitung: Ähnliche Dokumenten-Workflows
Beispiel für Formularfelder:
using IronOcr;
using IronSoftware.Drawing;
// Define regions for form fields
var nameFieldRegion = new Rectangle(100, 50, 300, 40);
var dateFieldRegion = new Rectangle(100, 100, 200, 40);
var amountFieldRegion = new Rectangle(100, 150, 150, 40);
// Create OCR instance
IronTesseract ocr = new IronTesseract();
// Extract from each region
using var tiffInput = new OcrImageInput("form.tiff");
// Process each field
var name = ocr.Read(new OcrImageInput("form.tiff", ContentArea: nameFieldRegion)).Text.Trim();
var date = ocr.Read(new OcrImageInput("form.tiff", ContentArea: dateFieldRegion)).Text.Trim();
var amount = ocr.Read(new OcrImageInput("form.tiff", ContentArea: amountFieldRegion)).Text.Trim();
Console.WriteLine($"Name: {name}");
Console.WriteLine($"Date: {date}");
Console.WriteLine($"Amount: {amount}");
using IronOcr;
using IronSoftware.Drawing;
// Define regions for form fields
var nameFieldRegion = new Rectangle(100, 50, 300, 40);
var dateFieldRegion = new Rectangle(100, 100, 200, 40);
var amountFieldRegion = new Rectangle(100, 150, 150, 40);
// Create OCR instance
IronTesseract ocr = new IronTesseract();
// Extract from each region
using var tiffInput = new OcrImageInput("form.tiff");
// Process each field
var name = ocr.Read(new OcrImageInput("form.tiff", ContentArea: nameFieldRegion)).Text.Trim();
var date = ocr.Read(new OcrImageInput("form.tiff", ContentArea: dateFieldRegion)).Text.Trim();
var amount = ocr.Read(new OcrImageInput("form.tiff", ContentArea: amountFieldRegion)).Text.Trim();
Console.WriteLine($"Name: {name}");
Console.WriteLine($"Date: {date}");
Console.WriteLine($"Amount: {amount}");
Imports IronOcr
Imports IronSoftware.Drawing
' Define regions for form fields
Dim nameFieldRegion As New Rectangle(100, 50, 300, 40)
Dim dateFieldRegion As New Rectangle(100, 100, 200, 40)
Dim amountFieldRegion As New Rectangle(100, 150, 150, 40)
' Create OCR instance
Dim ocr As New IronTesseract()
' Extract from each region
Using tiffInput As New OcrImageInput("form.tiff")
' Process each field
Dim name As String = ocr.Read(New OcrImageInput("form.tiff", ContentArea:=nameFieldRegion)).Text.Trim()
Dim date As String = ocr.Read(New OcrImageInput("form.tiff", ContentArea:=dateFieldRegion)).Text.Trim()
Dim amount As String = ocr.Read(New OcrImageInput("form.tiff", ContentArea:=amountFieldRegion)).Text.Trim()
Console.WriteLine($"Name: {name}")
Console.WriteLine($"Date: {date}")
Console.WriteLine($"Amount: {amount}")
End Using
Wie berechne ich den richtigen Beschnittbereich?
Berechnen Sie Beschnittrechtecke mit:
- Visuelle Prüfung: Bildbearbeitungsprogramme für Koordinaten verwenden
- Programmatische Erkennung: Nutzen Sie die Vision-Fähigkeiten von IronOCR
- Vorlagen: Definieren Sie einmalig Regionen für ähnliche Dokumente
Debuggen und Visualisieren mit der Funktion Texte hervorheben:
using IronOcr;
using IronSoftware.Drawing;
// Test different regions to find optimal coordinates
var testRegions = new[]
{
new Rectangle(100, 100, 200, 50),
new Rectangle(100, 160, 200, 50),
new Rectangle(100, 220, 200, 50)
};
IronTesseract ocr = new IronTesseract();
foreach (var region in testRegions)
{
using var input = new OcrImageInput("document.tiff", ContentArea: region);
var result = ocr.Read(input);
// Save highlighted region for visual verification
result.SaveAsHighlightedImage($"region_{region.X}_{region.Y}.png");
}
using IronOcr;
using IronSoftware.Drawing;
// Test different regions to find optimal coordinates
var testRegions = new[]
{
new Rectangle(100, 100, 200, 50),
new Rectangle(100, 160, 200, 50),
new Rectangle(100, 220, 200, 50)
};
IronTesseract ocr = new IronTesseract();
foreach (var region in testRegions)
{
using var input = new OcrImageInput("document.tiff", ContentArea: region);
var result = ocr.Read(input);
// Save highlighted region for visual verification
result.SaveAsHighlightedImage($"region_{region.X}_{region.Y}.png");
}
Imports IronOcr
Imports IronSoftware.Drawing
' Test different regions to find optimal coordinates
Dim testRegions = {
New Rectangle(100, 100, 200, 50),
New Rectangle(100, 160, 200, 50),
New Rectangle(100, 220, 200, 50)
}
Dim ocr As New IronTesseract()
For Each region In testRegions
Using input As New OcrImageInput("document.tiff", ContentArea:=region)
Dim result = ocr.Read(input)
' Save highlighted region for visual verification
result.SaveAsHighlightedImage($"region_{region.X}_{region.Y}.png")
End Using
Next
Verwenden Sie bei komplexen Dokumenten die Ergebnisobjekte von IronOCR, um Textstellen zu identifizieren und dynamische Ausschnittbereiche zu erstellen. Bei anspruchsvollen Bildern hilft der OCR-Leitfaden zur DPI-Optimierung von Bildern, eine optimale Auflösung zu erreichen.
IronOCR bietet eine optimierte API, die die Extraktion und Verarbeitung von Frames automatisch durchführt. Unabhängig davon, ob es sich um einseitige Dokumente oder komplexe Dateien mit mehreren Frames handelt, gilt für die Dokumenten-Workflows in Unternehmen die gleiche einfache Syntax.
Häufig gestellte Fragen
Wie kann ich in C# Text aus TIFF-Dateien mit mehreren Bildern extrahieren?
IronOCR bietet eine einfache Lösung für das Lesen von Multi-Frame-TIFF-Dateien unter Verwendung der OcrImageInput-Klasse. Sie instanziieren einfach IronTesseract und rufen die Read-Methode mit OcrImageInput auf, wobei Sie den Pfad zu Ihrer TIFF-Datei übergeben. Die Bibliothek erkennt und verarbeitet automatisch alle Bilder innerhalb der TIFF-Datei und fasst die Ergebnisse in einem einzigen OcrResult-Objekt zusammen.
Unterstützt die OCR-Bibliothek sowohl einseitige als auch mehrseitige TIFF-Dokumente?
Ja, IronOCR verarbeitet nahtlos sowohl Einzelbild- als auch Mehrbild-TIFF-Formate über denselben OcrImageInput-Konstruktor. Die Bibliothek iteriert automatisch durch jeden Frame in mehrseitigen Dokumenten, wendet OCR auf jede Seite an und eliminiert die Notwendigkeit einer komplexen Frame-by-Frame-Verarbeitungslogik.
Kann ich OCR für animierte GIF-Dateien durchführen?
IronOCR unterstützt das Lesen von Text aus GIF-Dateien, einschließlich animierter GIFs, unter Verwendung der gleichen OcrImageInput-Klasse, die für TIFF-Dateien verwendet wird. Die Bibliothek verarbeitet GIF-Bilder mit einem einzigen Aufruf der Read-Methode, so dass es einfach ist, Text sowohl aus statischen als auch aus animierten GIF-Formaten zu extrahieren.
Welche Komprimierungsformate werden für TIFF und GIF OCR unterstützt?
IronOCR arbeitet mit TIFF-Dateien, die eine verlustfreie Komprimierung unterstützen, und ist damit ideal für gescannte Dokumente und professionelle Fotografie. Bei GIF-Dateien verarbeitet die Bibliothek sowohl verlustfreie als auch verlustbehaftete Komprimierungsformate, einschließlich solcher mit Animationen, die in einer einzigen Datei gespeichert sind.
Wie kann ich die OCR-Leistung für große mehrseitige TIFF-Dokumente optimieren?
IronOCR bietet schnelle OCR-Konfigurationsoptionen und Multithreading-Fähigkeiten von Tesseract OCR für leistungskritische Anwendungen. Diese Funktionen gewährleisten eine effiziente Stapelverarbeitung bei der Bearbeitung großer mehrseitiger TIFF-Dokumente, wodurch die Verarbeitungszeit erheblich reduziert wird.
Kann ich bestimmte Lesebereiche in TIFF- oder GIF-Bildern definieren?
Ja, IronOCR ermöglicht es Ihnen, Lesebereiche zu definieren, indem Sie Beschneidungsbereiche innerhalb Ihrer TIFF- oder GIF-Bilder festlegen. Diese Funktion hilft dabei, die OCR-Verarbeitung auf bestimmte Teile des Bildes zu konzentrieren, was die Genauigkeit und Leistung verbessert, wenn Sie nur Text aus bestimmten Bereichen benötigen.

