IRONSOFTWAREHOME

Comment lire à partir de flux en C#35 ; pour l'OCR

Curtis Chau
Curtis Chau
Updated: 4 juin 2026

IronOCR lit les données d'image directement à partir des flux en C# en passant le flux aux constructeurs OcrInput ou OcrImageInput, permettant un traitement OCR efficace sans sauvegarder de fichiers sur disque.

Un flux est un flux continu d'informations binaires qui peuvent être lues ou écrites. En programmation, les flux traitent efficacement les données trop volumineuses pour la mémoire en les traitant en morceaux gérables.

Les méthodes d'importation d'IronOcr acceptent directement les flux de données d'images. Transmettez les données du flux à une méthode d'importation, qui gère automatiquement toutes les étapes nécessaires. Pour les scénarios avancés, explorez la classe OcrInput qui offre des options étendues pour préparer divers formats d'entrée.

Démarrage rapide : Utilisez un flux pour l'entrée OCR en quelques secondes

Cet exemple démontre l'OCR immédiate en alimentant un System.IO.Stream dans IronOCR, en contournant les chemins de fichier et en récupérant le texte reconnu avec un code minimal.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copiez et exécutez cet extrait de code.

    using var input = new IronOcr.OcrInput(stream);
    var result = new IronOcr.IronTesseract().Read(input);
    C#
  3. 3Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
    arrow pointer

Comment lire des flux avec IronOCR?

Tout d'abord, instanciez la classe IronTesseract pour effectuer l'OCR. Utilisez la méthode FromFile de AnyBitmap pour importer le fichier image. Cet objet AnyBitmap convertit les données d'image en un flux. Ensuite, utilisez l'instruction using pour créer l'objet OcrImageInput en passant le flux d'image avec la méthode GetStream. Enfin, utilisez la méthode Read pour effectuer l'OCR.

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);

L'OCR basée sur les flux est utile aux applications web qui reçoivent des téléchargements d'images, traitent des images provenant de bases de données ou traitent des données temporaires qui ne doivent pas être écrites sur le disque. L'approche via flux s'intègre parfaitement avec des objets System.Drawing et d'autres bibliothèques de manipulation d'images.

Pourquoi utiliser des flux pour l'OCR?

Travailler avec des flux présente plusieurs avantages pour les développeurs .NET :

  1. Efficacité de mémoire : Traitez les données par morceaux plutôt que de charger des fichiers entiers en mémoire
  2. Sécurité : Traitez des documents sensibles sans créer de fichiers temporaires sur disque
  3. Performance : Éliminez la surcharge d'E/S des opérations du système de fichiers
  4. Flexibilité : Travaillez avec des téléchargements Web, des BLOBs de base de données et des transformations en mémoire

Pour le traitement de documents de plusieurs pages ou la manipulation de flux PDF, IronOcr conserve la même API simple tout en offrant des performances robustes. Lorsque vous travaillez avec des documents numérisés, vous pouvez également tirer parti des capacités d'IronOcr pour lire efficacement des documents numérisés grâce au traitement en flux.

Comment puis-je spécifier une région de numérisation pour l'OCR en flux ?

Pour améliorer les performances sur les grandes images et obtenir des lectures spécifiques de certaines régions, utilisez la classe CropRectangle. Le constructeur OcrImageInput accepte un objet CropRectangle en tant que deuxième paramètre, vous permettant de spécifier quelle région du document image doit être lue. L'exemple de code ci-dessous précise que seuls le numéro de chapitre et la région du titre doivent être lus.

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);

Cette technique est particulièrement utile lorsque vous devez OCR une région spécifique d'une image ou lorsque vous traitez des documents structurés où le texte apparaît à des endroits prévisibles. Pour des scénarios plus complexes impliquant des tableaux ou des données structurées, découvrez comment lire des tableaux dans des documents.

À quoi ressemble la région de balayage dans la sortie ?

Démonstration de l'OCR : document dans Photo Viewer avec le texte extrait "Chapter Eight The Deathday Party" affiché dans la console de débogage

Quelles sont les techniques avancées de traitement des flux que je peux utiliser ?

Lorsque vous travaillez avec des flux, exploitez les fonctionnalités supplémentaires d'IronOCR pour améliorer la précision de la reconnaissance. Les filtres d'optimisation d'image peuvent être appliqués directement aux données de flux avant le traitement OCR :

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;
}

Pour améliorer le traitement des images, envisagez d'utiliser l'Assistant de filtrage afin de déterminer automatiquement les meilleures étapes de prétraitement pour vos types de documents spécifiques. En outre, lorsque vous traitez des images tournées ou de travers dans vos flux, la fonctionnalité fixer l'orientation de l'image peut améliorer de manière significative la précision de l'OCR.

Comment travailler avec différentes sources de flux ?

IronOcr gère diverses sources de flux de manière transparente. Qu'il s'agisse de traiter des téléchargements à partir d'un formulaire web, d'extraire des images d'une base de données ou de convertir des formats, l'API reste cohérente :

// 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);

Pour des résultats optimaux, pensez à ajuster les paramètres DPI lorsque vous travaillez avec des flux à faible résolution. IronOCR gère automatiquement la détection du DPI, mais une configuration manuelle peut améliorer la précision pour des cas d'utilisation spécifiques. Lorsque vous travaillez avec des documents multipages, envisagez de traiter les fichiers TIFF et GIF multipages par le biais du traitement des flux.

Comment traiter les résultats de l'OCR à partir de flux ?

Après avoir traité votre flux, IronOCR fournit des objets de résultat riches qui vont au-delà de la simple extraction de texte. La classe OcrResult contient des informations détaillées sur le texte reconnu, y compris les scores de confiance, le positionnement et la structure :

// 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#

L'objet résultat fournit également des méthodes pour exporter vers des PDF consultables ou hOCR HTML format, ce qui facilite la création d'archives de documents consultables à partir de vos flux d'entrée. À des fins de débogage, vous pouvez utiliser la fonction de mise en évidence des textes pour visualiser ce qu'IronOcr a détecté dans vos images.

Quelles sont les considérations de performance à connaître ?

Lorsque vous traitez plusieurs flux ou que vous mettez en œuvre des solutions d'OCR à haut débit, tenez compte de ces stratégies d'optimisation :

  1. Réutilisez les instances IronTesseract : créez une seule instance et réutilisez-la à travers plusieurs opérations
  2. Implémentez le suivi de progression : Pour les flux volumineux, utilisez le suivi de progression pour surveiller l'état du traitement
  3. Traitez en parallèle : IronOCR prend en charge le traitement simultané pour plusieurs flux
  4. Optimisez la qualité de l'image : Prétraitez les flux pour assurer une résolution et une clarté optimales

Pour des performances optimales, explorez les options de configuration fast OCR et envisagez de mettre en œuvre le traitement multithread pour les opérations par lots. Lorsque vous travaillez avec des applications sensibles au facteur temps, la compréhension des timeouts peut vous aider à gérer efficacement les opérations d'OCR de longue durée.

Comment résoudre les problèmes courants liés aux flux de données?

Lorsque vous travaillez avec des flux, vous pouvez être confronté à des défis spécifiques. Voici des solutions à des scénarios courants :

  • Position du flux : réinitialisez toujours la position du flux à 0 avant de le passer à IronOCR
  • Élimination : utilisez des instructions using pour assurer un nettoyage approprié des ressources
  • Prise en charge des formats : IronOCR prend en charge différents formats d'image y compris JPEG, PNG, TIFF, et BMP via des flux
  • Gestion de la mémoire : Pour les flux volumineux, envisagez le traitement par morceaux ou des approches de streaming

Pour les documents complexes ou lorsque l'OCR standard ne donne pas de résultats satisfaisants, les fonctions de vision artificielle peuvent aider à localiser et à extraire le texte avec plus de précision. En outre, lorsque vous travaillez avec des flux de faible qualité, consultez le guide fixing low quality scans pour connaître les techniques de prétraitement qui peuvent améliorer de manière significative les taux de reconnaissance.

Pour obtenir des informations plus détaillées sur l'utilisation des flux et d'autres méthodes d'entrée, consultez nos guides pratiques et exemples de code.

Questions Fréquemment Posées

Comment puis-je effectuer une reconnaissance optique de caractères (OCR) sur des données d'image sans les enregistrer d'abord sur le disque ?

IronOcr permet de traiter directement les flux d'images en les passant aux constructeurs OcrInput ou OcrImageInput. Cela permet un traitement efficace de l'OCR sans créer de fichiers temporaires, ce qui est idéal pour traiter les téléchargements web, les BLOB de base de données ou les documents sensibles qui ne doivent pas toucher le disque.

Quels types de flux peuvent être utilisés comme entrée pour le traitement OCR ?

IronOCR accepte tout System.IO.Stream contenant des données d'image. Il peut s'agir de flux de mémoire provenant de téléchargements sur le web, de flux provenant de champs BLOB de bases de données ou de flux créés à partir de bibliothèques de manipulation d'images. La bibliothèque gère automatiquement toutes les étapes de conversion nécessaires lorsque vous passez le flux à OcrInput ou OcrImageInput.

Quelle est la manière la plus simple d'effectuer une reconnaissance optique de caractères sur un flux en C# ?

La méthode la plus rapide consiste à créer un objet OcrInput avec votre flux et à appeler la méthode Read : 'using var input = new IronOcr.OcrInput(stream) ; var result = new IronOcr.IronTesseract().Read(input);'. Ce code minimal effectue l'OCR et renvoie immédiatement le texte reconnu.

Pourquoi devrais-je utiliser des flux plutôt que des chemins d'accès aux fichiers pour l'OCR ?

L'OCR basée sur les flux avec IronOCR offre plusieurs avantages : efficacité de la mémoire en traitant les données par morceaux, sécurité renforcée en évitant les fichiers temporaires sur le disque, amélioration des performances en éliminant la surcharge des E/S de fichiers, et plus grande flexibilité lorsque l'on travaille avec des téléchargements web ou des BLOB de base de données.

Puis-je spécifier une zone spécifique d'un flux d'images à lire ?

Oui, IronOCR vous permet de définir la zone de lecture en spécifiant une région de culture lors du traitement des flux. Cette fonctionnalité vous permet de concentrer l'OCR sur des parties spécifiques de l'image sans traiter l'ensemble du document, ce qui améliore à la fois la vitesse et la précision.

Comment le traitement des flux s'intègre-t-il aux autres bibliothèques de manipulation d'images ?

L'approche par flux d'IronOCR s'intègre parfaitement aux objets System.Drawing et aux autres bibliothèques de manipulation d'images .NET. Vous pouvez utiliser la classe AnyBitmap pour convertir des images en flux à l'aide de la méthode GetStream, ce qui facilite la combinaison de l'OCR avec d'autres flux de traitement d'images.

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
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer?

Nuget Downloads 6,236,385Version :2026.9vient de sortir

Obtenez votre GRATUIT

Clé d'essai de 30 jours instantanément.

bullet_checkedAucune carte de crédit ou création de compte requise
bullet_testTester en production
sans filigranes
bullet_calendarProduit entièrement fonctionnel
pendant 30 jours
bullet_supportSupport technique 24/5
pendant l'essai
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et cherchez "IronOCR"
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez le programme d'installation Windows ici.

  1. Téléchargez et décompressez IronOCR à un emplacement tel que ~/Libs dans votre répertoire du projet
  2. Dans l'Explorateur de Solutions de Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, "IronOCR.dll"

Licences à partir de $999

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise