C# OCR Image to Text Tutorial: Convert Images to Text Without Tesseract
Vous cherchez à convertir des images en texte en C# sans avoir à vous soucier des configurations complexes de Tesseract ? Ce tutoriel complet sur IronOCR en C# vous montre comment implémenter une puissante reconnaissance optique de caractères dans vos applications .NET avec seulement quelques lignes de code.
Guide de démarrage rapide : extraire du texte d'une image en une seule ligne
Cet exemple montre à quel point IronOCR est facile à appréhender : une seule ligne de C# transforme votre image en texte. Il démontre l'initialisation du moteur OCR et la lecture et la récupération immédiates du texte sans configuration complexe.
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
PM > Install-Package IronOcr -
Copiez et exécutez cet extrait de code.
string text = new IronTesseract().Read("image.png").Text; -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Téléchargez IronOCR - la bibliothèque OCR C# pour la conversion d'images en texte
- Utilisez la classe
IronTesseractpour lire instantanément le texte des images. - Appliquez des filtres d'image pour améliorer la précision de la reconnaissance optique de caractères (OCR) sur les numérisations de faible qualité.
- Gérez plusieurs langues grâce aux packs de langues téléchargeables.
- Exporter les résultats sous forme de PDF consultables ou extraire des chaînes de texte
Comment lire le texte des images dans les applications .NET ?
Pour intégrer la fonctionnalité de conversion d'images en texte par reconnaissance optique de caractères (OCR) en C# dans vos applications .NET, vous aurez besoin d'une bibliothèque OCR fiable. IronOCR fournit une solution gérée utilisant la classe IronOcr.IronTesseract qui optimise à la fois la précision et la vitesse sans nécessiter de dépendances externes.
Commencez par installer IronOCR dans votre projet Visual Studio. Vous pouvez télécharger directement la DLL IronOCR ou utiliser le gestionnaire de packages NuGet .
Install-Package IronOcr
Pourquoi choisir IronOCR pour l'OCR en C# sans Tesseract ?
Lorsque vous devez convertir des images en texte en C#, IronOCR offre des avantages significatifs par rapport aux implémentations Tesseract traditionnelles :
- Fonctionne immédiatement dans les environnements .NET purs Aucune installation ni configuration de Tesseract requise
- Fonctionne avec les moteurs les plus récents : Tesseract 5 (ainsi que Tesseract 4 et 3)
- Compatible avec .NET Framework 4.6.2+, .NET Standard 2+ et .NET Core 2, 3, 5, 6, 7, 8, 9 et 10
- Améliore la précision et la vitesse par rapport au Tesseract de base
- Prend en charge les déploiements Xamarin, Mono, Azure et Docker
- Gère les dictionnaires Tesseract complexes via les packages NuGet
- Prend en charge automatiquement les fichiers PDF, les TIFF multi-images et tous les principaux formats d'image.
- Corrige les numérisations de mauvaise qualité et déformées pour des résultats optimaux
Tutoriel IronOCR C# pour l'OCR de base : Comment utiliser IronOCR ?
Cet exemple C# avec Iron Tesseract illustre la méthode la plus simple pour lire du texte à partir d'une image à l'aide d'IronOCR. La classe IronOcr.IronTesseract extrait du texte et le renvoie sous forme de chaîne de caractères.
// 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
Ce code atteint une précision de 100 % sur les images nettes, en extrayant le texte exactement comme il apparaît :
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
La classe IronTesseract gère en interne des opérations OCR complexes. Il effectue automatiquement une analyse d'alignement, optimise la résolution et utilise l'IA pour lire le texte de l'image grâce à IronOCR avec une précision comparable à celle de l'humain.
Malgré le traitement sophistiqué qui s'effectue en arrière-plan — incluant l'analyse d'images, l'optimisation du moteur et la reconnaissance intelligente de texte — le processus OCR atteint une vitesse de lecture humaine tout en conservant des niveaux de précision exceptionnels.
Capture d'écran démontrant la capacité d'IronOCR à extraire du texte d'une image PNG avec une précision parfaite
Comment implémenter une OCR C# avancée sans configuration Tesseract ?
Pour les applications de production nécessitant des performances optimales lors de la conversion d'images en texte en C#, utilisez conjointement les classes OcrInput et IronTesseract. Cette approche permet un contrôle précis du processus OCR.
Fonctionnalités de la classe OcrInput
- Prend en charge plusieurs formats d'image : JPEG, TIFF, GIF, BMP, PNG
- Importe des PDF complets ou des pages spécifiques
- Améliore automatiquement le contraste, la résolution et la qualité d'image
- Corrige la rotation, le bruit de numérisation, l'inclinaison et les images négatives
Caractéristiques de la classe IronTesseract
- Accès à plus de 127 langues pré-intégrées
- Moteurs Tesseract 5, 4 et 3 inclus
- Spécification du type de document (capture d'écran, extrait ou document complet)
- Fonctionnalités intégrées de lecture de codes-barres
- Formats de sortie multiples : PDF consultables, HTML HOCR, objets DOM et chaînes de caractères
Comment débuter avec OcrInput et IronTesseract ?
Voici une configuration recommandée pour ce tutoriel IronOCR en C# qui fonctionne bien avec la plupart des types de documents :
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
Cette configuration permet d'obtenir systématiquement une précision quasi parfaite sur des numérisations de qualité moyenne. La méthode LoadImageFrames gère efficacement les documents de plusieurs pages, ce qui la rend idéale pour les scénarios de traitement par lots.
Exemple de document TIFF illustrant les capacités d'extraction de texte multipage d'IronOCR
La capacité à lire du texte à partir d'images et de codes-barres dans des documents numérisés comme les fichiers TIFF illustre comment IronOCR simplifie les tâches OCR complexes. La bibliothèque excelle avec les documents du monde réel, gérant de manière transparente les fichiers TIFF multipages et l'extraction de texte PDF .
Comment IronOCR gère-t-il les numérisations de faible qualité ?
Document basse résolution bruité qu'IronOCR peut traiter avec précision grâce à des filtres d'image.
Lors du traitement de numérisations imparfaites contenant des distorsions et du bruit numérique, IronOCR surpasse les autres bibliothèques OCR C# . Il est spécifiquement conçu pour des scénarios réels plutôt que pour des images de test impeccables.
// 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}");
}
// 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}");
}
' Advanced Iron Tesseract C# example for low-quality images
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
Try
Using input = New OcrInput()
' Load specific pages from poor-quality TIFF
Dim pageIndices = New Integer() { 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
Dim result As OcrResult = ocr.Read(input)
' Display results
Console.WriteLine("Recognized Text:")
Console.WriteLine(result.Text)
End Using
Catch ex As Exception
Console.WriteLine($"Error during OCR: {ex.Message}")
End Try
Grâce à Input.Deskew(), la précision atteint 99,8 % sur les numérisations de mauvaise qualité, ce qui est presque équivalent aux résultats obtenus avec des numérisations de haute qualité. Cela démontre pourquoi IronOCR est le choix privilégié pour la reconnaissance optique de caractères (OCR) en C# sans les complications liées à Tesseract.
Les filtres d'image peuvent légèrement augmenter le temps de traitement, mais réduisent considérablement la durée globale de la reconnaissance optique de caractères (OCR). Trouver le juste équilibre dépend de la qualité de vos documents.
Dans la plupart des cas, Input.Deskew() et Input.DeNoise() apportent des améliorations fiables aux performances de l'OCR. Apprenez-en davantage sur les techniques de prétraitement d'images .
Comment optimiser les performances et la vitesse de la reconnaissance optique de caractères (OCR) ?
Le facteur le plus important affectant la vitesse de la reconnaissance optique de caractères (OCR) lors de la conversion d'images en texte en C# est la qualité des données d'entrée. Une résolution DPI plus élevée (~200 dpi) avec un bruit minimal produit les résultats les plus rapides et les plus précis.
Bien qu'IronOCR excelle dans la correction de documents imparfaits, cette amélioration nécessite un temps de traitement supplémentaire.
Choisissez des formats d'image présentant un minimum d'artefacts de compression. Les formats TIFF et PNG donnent généralement des résultats plus rapides que le JPEG grâce à un bruit numérique plus faible.
Quels filtres d'image améliorent la vitesse de la reconnaissance optique de caractères (OCR) ?
Les filtres suivants peuvent améliorer considérablement les performances de votre flux de travail de conversion d'images en texte par reconnaissance optique de caractères (OCR) en C# :
OcrInput.Rotate(double degrees): fait pivoter les images dans le sens des aiguilles d'une montre (négatif pour le sens inverse des aiguilles d'une montre)OcrInput.Binarize(): Convertit en noir et blanc, améliorant les performances dans les scénarios à faible contrasteOcrInput.ToGrayScale(): Conversion en niveaux de gris pour améliorer potentiellement la vitesseOcrInput.Contrast(): Ajuste automatiquement le contraste pour une meilleure précisionOcrInput.DeNoise(): Supprime les artefacts numériques lorsque du bruit est attenduOcrInput.Invert(): Inverse les couleurs pour un texte blanc sur fond noirOcrInput.Dilate(): Étend les limites du texteOcrInput.Erode(): Réduit les limites de texteOcrInput.Deskew(): Corrige l'alignement - indispensable pour les documents déformésOcrInput.DeepCleanBackgroundNoise(): Suppression agressive du bruitOcrInput.EnhanceResolution: Améliore la qualité des images à basse résolutionOcrInput.DetectPageOrientation(): Détecte et corrige la rotation de la page. Passez unOrientationDetectionModepour contrôler le compromis entre précision et vitesse :Fast,Balanced,DetailedouExtremeDetailed(ajouté dans la version 2025.8.6)
Scale() et EnhanceResolution() sont incompatibles avec SaveAsSearchablePdf() en raison d'un problème connu dans la version 2025.12.3. Tous les autres filtres fonctionnent correctement avec la sortie PDF consultable.
Comment configurer IronOCR pour une vitesse maximale ?
Utilisez ces paramètres pour optimiser la vitesse lors du traitement de numérisations de haute qualité :
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);
}
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);
}
Imports IronOcr
' Configure for speed - ideal for clean documents
Private ocr As 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 input As New OcrInput()
' Load specific pages from document
Dim pageIndices() As Integer = { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageIndices)
' Read with optimized settings
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
Cette configuration optimisée maintient une précision de 99,8 % tout en permettant une amélioration de la vitesse de 35 % par rapport aux paramètres par défaut.
Comment lire des zones spécifiques d'images à l'aide de l'OCR en C# ?
L'exemple Iron Tesseract C# ci-dessous montre comment cibler des régions spécifiques à l'aide de System.Drawing.Rectangle. Cette technique est précieuse pour le traitement des formulaires standardisés où le texte apparaît à des emplacements prévisibles.
IronOCR peut-il traiter les régions recadrées pour des résultats plus rapides ?
En utilisant des coordonnées basées sur les pixels, vous pouvez limiter la reconnaissance optique de caractères (OCR) à des zones spécifiques, ce qui améliore considérablement la vitesse et empêche l'extraction de texte indésirable :
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.LoadImage("img/ComSci.png", contentArea);
// Process only the defined region
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
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.LoadImage("img/ComSci.png", contentArea);
// Process only the defined region
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
' Initialize OCR engine for targeted region processing
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Define exact region for OCR - coordinates in pixels
Dim contentArea As New System.Drawing.Rectangle(215, 1250, 1335, 280)
' Load image with specific area - perfect for forms and invoices
input.LoadImage("img/ComSci.png", contentArea)
' Process only the defined region
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
Cette approche ciblée permet un gain de vitesse de 41 % tout en extrayant uniquement le texte pertinent. Il est idéal pour les documents structurés tels que les factures , les chèques et les formulaires. La même technique de recadrage fonctionne parfaitement avec les opérations OCR de PDF .
Document illustrant l'extraction précise de texte par région à l'aide de la sélection rectangulaire d'IronOCR
Combien de langues IronOCR prend-il en charge ?
IronOCR propose 127 langues internationales via des packs linguistiques pratiques. Téléchargez-les sous forme de DLL depuis notre site web ou via le gestionnaire de packages NuGet .
Installez les modules linguistiques via l'interface NuGet ( recherchez " IronOcr.Languages " ) ou consultez la liste complète des modules linguistiques .
Les langues prises en charge incluent l'arabe, le chinois (simplifié/traditionnel), le japonais, le coréen, l'hindi, le russe, l'allemand, le français, l'espagnol et plus de 115 autres, chacune optimisée pour une reconnaissance de texte précise.
Comment implémenter la reconnaissance optique de caractères (OCR) dans plusieurs langues ?
Ce tutoriel IronOCR en C# illustre la reconnaissance de texte arabe :
Install-Package IronOcr.Languages.Arabic
IronOCR extrait avec précision du texte arabe d'une image GIF
// 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.LoadImage("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");
}
// 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.LoadImage("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");
}
Imports IronOcr
' Configure for Arabic language OCR
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.Arabic
Using input As New OcrInput()
' Load Arabic text image
input.LoadImage("img/arabic.gif")
' IronOCR handles low-quality Arabic text that standard Tesseract cannot
Dim result = ocr.Read(input)
' Save to file (console may not display Arabic correctly)
result.SaveAsTextFile("arabic.txt")
End Using
IronOCR peut-il gérer des documents multilingues ?
Lorsque les documents contiennent plusieurs langues, configurez IronOCR pour la prise en charge multilingue :
Install-Package IronOcr.Languages.ChineseSimplified
// 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.LoadImage("img/MultiLanguage.jpeg");
var result = ocr.Read(input);
result.SaveAsTextFile("MultiLanguage.txt");
}
// 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.LoadImage("img/MultiLanguage.jpeg");
var result = ocr.Read(input);
result.SaveAsTextFile("MultiLanguage.txt");
}
Imports IronOcr
' Multi-language OCR configuration
Dim ocr As 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 input As New OcrInput()
' Process multi-language document
input.LoadImage("img/MultiLanguage.jpeg")
Dim result = ocr.Read(input)
result.SaveAsTextFile("MultiLanguage.txt")
End Using
Comment traiter des documents multipages avec l'OCR en C# ?
IronOCR combine de manière transparente plusieurs pages ou images en un seul OcrResult. Cette fonctionnalité offre des possibilités puissantes telles que la création de PDF consultables et l'extraction de texte à partir d'ensembles de documents.
Combinez et associez différentes sources (images, images TIFF et pages PDF) en une seule opération OCR :
// Multi-source document processing
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Add various image formats
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Process specific frames from multi-frame images
int[] frameNumbers = { 1, 2 };
input.LoadImageFrames("image3.gif", frameNumbers);
// Process all sources together
OcrResult result = ocr.Read(input);
// Verify page count
Console.WriteLine($"{result.Pages.Count} Pages processed.");
}
// Multi-source document processing
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Add various image formats
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Process specific frames from multi-frame images
int[] frameNumbers = { 1, 2 };
input.LoadImageFrames("image3.gif", frameNumbers);
// Process all sources together
OcrResult result = ocr.Read(input);
// Verify page count
Console.WriteLine($"{result.Pages.Count} Pages processed.");
}
Imports IronOcr
' Multi-source document processing
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Add various image formats
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
' Process specific frames from multi-frame images
Dim frameNumbers As Integer() = {1, 2}
input.LoadImageFrames("image3.gif", frameNumbers)
' Process all sources together
Dim result As OcrResult = ocr.Read(input)
' Verify page count
Console.WriteLine($"{result.Pages.Count} Pages processed.")
End Using
Traiter efficacement toutes les pages d'un fichier TIFF :
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");
}
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");
}
Imports IronOcr
Private ocr As New IronTesseract()
Using input As New OcrInput()
' Define pages to process (0-based indexing)
Dim pageIndices() As Integer = { 0, 1 }
' Load specific TIFF frames
input.LoadImageFrames("MultiFrame.Tiff", pageIndices)
' Extract text from all frames
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
Console.WriteLine($"{result.Pages.Count} Pages processed")
End Using
Convertir les fichiers TIFF ou PDF en formats consultables :
using System;
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Set document metadata
input.Title = "Quarterly Report";
// Combine multiple sources
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Add specific frames from animated images
int[] gifFrames = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", gifFrames);
// Create searchable PDF
OcrResult result = ocr.Read(input);
// Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
result.SaveAsSearchablePdf("searchable.pdf", true);
}
using System;
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Set document metadata
input.Title = "Quarterly Report";
// Combine multiple sources
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Add specific frames from animated images
int[] gifFrames = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", gifFrames);
// Create searchable PDF
OcrResult result = ocr.Read(input);
// Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
result.SaveAsSearchablePdf("searchable.pdf", true);
}
Imports System
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Set document metadata
input.Title = "Quarterly Report"
' Combine multiple sources
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
' Add specific frames from animated images
Dim gifFrames As Integer() = {1, 2}
input.LoadImageFrames("image3.gif", gifFrames)
' Create searchable PDF
Dim result As OcrResult = ocr.Read(input)
' Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
result.SaveAsSearchablePdf("searchable.pdf", True)
End Using
Convertir les fichiers PDF existants en versions consultables :
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");
}
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");
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrInput()
' Set PDF metadata
input.Title = "Annual Report 2024"
' Process existing PDF
input.LoadPdf("example.pdf", "password")
' Generate searchable version
Dim result = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
End Using
Appliquez la même technique aux conversions TIFF :
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");
}
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");
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrInput()
' Configure document properties
input.Title = "Scanned Archive Document"
' Select pages to process
Dim pageIndices = New Integer() { 1, 2 }
input.LoadImageFrames("example.tiff", pageIndices)
' Create searchable PDF from TIFF
Dim result As OcrResult = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
End Using
Comment exporter les résultats OCR au format HTML HOCR ?
IronOCR prend en charge l'exportation HTML HOCR, permettant la conversion de PDF structurés en HTML et de TIFF en HTML tout en préservant les informations de mise en page :
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Set HTML title
input.Title = "Document Archive";
// Process multiple document types
input.LoadImage("image2.jpeg");
input.LoadPdf("example.pdf", "password");
// Add TIFF pages
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageIndices);
// Export as HOCR with position data
OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("hocr.html");
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Set HTML title
input.Title = "Document Archive";
// Process multiple document types
input.LoadImage("image2.jpeg");
input.LoadPdf("example.pdf", "password");
// Add TIFF pages
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageIndices);
// Export as HOCR with position data
OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("hocr.html");
}
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Set HTML title
input.Title = "Document Archive"
' Process multiple document types
input.LoadImage("image2.jpeg")
input.LoadPdf("example.pdf", "password")
' Add TIFF pages
Dim pageIndices As Integer() = {1, 2}
input.LoadImageFrames("example.tiff", pageIndices)
' Export as HOCR with position data
Dim result As OcrResult = ocr.Read(input)
result.SaveAsHocrFile("hocr.html")
End Using
IronOCR peut-il lire les codes-barres ainsi que le texte ?
IronOCR combine de manière unique la reconnaissance de texte et la lecture de codes-barres , éliminant ainsi le besoin de bibliothèques séparées :
// 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.LoadImage("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}");
}
}
// 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.LoadImage("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}");
}
}
Imports IronOcr
Dim ocr As New IronTesseract()
' Enable barcode detection
ocr.Configuration.ReadBarCodes = True
Using input As New OcrInput()
' Load image containing both text and barcodes
input.LoadImage("img/Barcode.png")
' Process both text and barcodes
Dim result = ocr.Read(input)
' Extract barcode data
For Each barcode In result.Barcodes
Console.WriteLine($"Barcode Value: {barcode.Value}")
Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}")
Next
End Using
Comment accéder aux résultats OCR détaillés et aux métadonnées ?
L'objet de résultats IronOCR fournit des données complètes que les développeurs avancés peuvent exploiter pour des applications sophistiquées.
Chaque OcrResult contient des collections hiérarchiques : pages, paragraphes, lignes, WORDs et caractères. Tous les éléments incluent des métadonnées détaillées telles que l'emplacement, les informations sur la police et les scores de confiance.
Les éléments individuels (paragraphes, mots, codes-barres) peuvent être exportés sous forme d'images ou de bitmaps pour un traitement ultérieur :
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;
}
}
}
}
}
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;
}
}
}
}
}
Imports System
Imports IronOcr
Imports IronSoftware.Drawing
' Configure with barcode support
Private ocr As New IronTesseract With {
.Configuration = { ReadBarCodes = True }
}
Private OcrInput As using
' Process multi-page document
Private pageIndices() As Integer = { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageIndices)
Dim result As OcrResult = ocr.Read(input)
' Navigate the complete results hierarchy
For Each page In result.Pages
' Page-level data
Dim pageNumber As Integer = page.PageNumber
Dim pageText As String = page.Text
Dim pageWordCount As Integer = page.WordCount
' Extract page elements
Dim barcodes() As OcrResult.Barcode = page.Barcodes
Dim pageImage As AnyBitmap = page.ToBitmap()
Dim pageWidth As Double = page.Width
Dim pageHeight As Double = page.Height
For Each paragraph In page.Paragraphs
' Paragraph properties
Dim paragraphNumber As Integer = paragraph.ParagraphNumber
Dim paragraphText As String = paragraph.Text
Dim paragraphConfidence As Double = paragraph.Confidence
Dim textDirection = paragraph.TextDirection
For Each line In paragraph.Lines
' Line details including baseline information
Dim lineText As String = line.Text
Dim lineConfidence As Double = line.Confidence
Dim baselineAngle As Double = line.BaselineAngle
Dim baselineOffset As Double = line.BaselineOffset
For Each word In line.Words
' Word-level data
Dim wordText As String = word.Text
Dim wordConfidence As Double = word.Confidence
' Font information (when available)
If word.Font IsNot Nothing Then
Dim fontName As String = word.Font.FontName
Dim fontSize As Double = word.Font.FontSize
Dim isBold As Boolean = word.Font.IsBold
Dim isItalic As Boolean = word.Font.IsItalic
End If
For Each character In word.Characters
' Character-level analysis
Dim charText As String = character.Text
Dim charConfidence As Double = character.Confidence
' Alternative character choices for spell-checking
Dim alternatives() As OcrResult.Choice = character.Choices
Next character
Next word
Next line
Next paragraph
Next page
Résumé
IronOCR offre aux développeurs C# l'implémentation la plus avancée de l'API Tesseract , fonctionnant de manière transparente sur les plateformes Windows, Linux et Mac. Sa capacité à lire avec précision le texte à partir d'une image grâce à IronOCR — même à partir de documents imparfaits — la distingue des solutions OCR de base.
Les caractéristiques uniques de la bibliothèque incluent la lecture intégrée des codes-barres et la possibilité d'exporter les résultats sous forme de PDF consultables ou de HTML HOCR, des fonctionnalités indisponibles dans les implémentations Tesseract standard.
Aller de l'avant
Pour continuer à maîtriser IronOCR :
- Consultez notre guide complet pour bien démarrer
- Parcourez des exemples de code C# pratiques
- Consultez la documentation détaillée de l'API.
Téléchargement du code source
Prêt à implémenter la conversion d'images en texte par reconnaissance optique de caractères (OCR) en C# dans vos applications ? Téléchargez IronOCR et commencez votre essai gratuit dès aujourd'hui.
Questions Fréquemment Posées
Comment puis-je convertir des images en texte en C# sans utiliser Tesseract ?
Vous pouvez utiliser IronOCR pour convertir des images en texte en C# sans avoir besoin de Tesseract. IronOCR simplifie le processus avec des méthodes intégrées qui gèrent directement la conversion image-texte.
Comment améliorer la précision de l'OCR sur les images de faible qualité ?
IronOCR fournit des filtres d'image tels que Input.Deskew() et Input.DeNoise() qui peuvent être utilisés pour améliorer les images de faible qualité en corrigeant les distorsions et en réduisant le bruit, améliorant ainsi considérablement la précision de l'OCR.
Quelles sont les étapes pour extraire du texte d'un document multipage en utilisant l'OCR en C# ?
Pour extraire du texte de documents multipages, IronOCR vous permet de charger et traiter chaque page en utilisant des méthodes comme LoadPdf() pour les PDF ou en manipulant les fichiers TIFF, convertissant efficacement chaque page en texte.
Est-il possible de lire simultanément des codes-barres et du texte à partir d'une image ?
Oui, IronOCR peut lire à la fois le texte et les codes-barres à partir d'une seule image. Vous pouvez activer la lecture de codes-barres avec ocr.Configuration.ReadBarCodes = true, ce qui permet l'extraction à la fois des données textuelles et de code-barres.
Comment puis-je configurer l'OCR pour traiter des documents dans plusieurs langues ?
IronOCR prend en charge plus de 125 langues et vous permet de définir une langue principale en utilisant ocr.Language et d'ajouter des langues supplémentaires avec ocr.AddSecondaryLanguage() pour le traitement de documents multilingues.
Quelles méthodes sont disponibles pour exporter les résultats de l'OCR dans différents formats ?
IronOCR offre plusieurs méthodes pour exporter les résultats OCR, telles que SaveAsSearchablePdf() pour les PDF, SaveAsTextFile() pour le texte brut, et SaveAsHocrFile() pour le format HTML HOCR.
Comment puis-je optimiser la vitesse de traitement OCR pour les fichiers image volumineux ?
Pour optimiser la vitesse de traitement OCR, utilisez OcrLanguage.EnglishFast d'IronOCR pour une reconnaissance de langue plus rapide et définissez des régions spécifiques pour l'OCR en utilisant System.Drawing.Rectangle afin de réduire le temps de traitement.
Comment gérer le traitement OCR pour les fichiers PDF protégés ?
Lors de la manipulation de fichiers PDF protégés, utilisez la méthode LoadPdf() avec le bon mot de passe. IronOCR gère les PDF basés sur des images en convertissant automatiquement les pages en images pour le traitement de l'OCR.
Que dois-je faire si les résultats de l'OCR ne sont pas précis ?
Si les résultats de l'OCR sont inexacts, envisagez d'utiliser les fonctionnalités d'amélioration d'image d'IronOCR comme Input.Deskew() et Input.DeNoise(), et assurez-vous que les packs linguistiques corrects sont installés.
Puis-je personnaliser le processus OCR pour exclure certains caractères ?
Oui, IronOCR permet la personnalisation du processus OCR en utilisant la propriété BlackListCharacters pour exclure certains caractères, améliorant la précision et la vitesse de traitement en se concentrant uniquement sur le texte pertinent.

