Comment utiliser les images System Drawing pour le traitement OCR en C#

Comment lire les objets System.Drawing en C

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

System.Drawing.Bitmap est une classe du framework .NET utilisée pour travailler avec des images bitmap. Il fournit des méthodes et des propriétés pour créer, manipuler et afficher des images bitmap.

System.Drawing.Image est une classe de base pour tous les objets image GDI+ du framework .NET. Il s'agit de la classe parente de divers types d'images, notamment System.Drawing.Bitmap .

IronSoftware.Drawing.AnyBitmap est une classe bitmap d' IronDrawing , une bibliothèque open-source initialement développée par Iron Software. Il aide les ingénieurs logiciels C# à remplacer System.Drawing.Common dans les projets .NET sur les plateformes Windows, macOS et Linux.

Démarrage rapide : Lire du texte à partir d'un System.Drawing.Bitmap

En une seule instruction simple, créez un IronTesseract et alimentez-le avec un System.Drawing.Bitmap enveloppé par OcrImageInput pour extraire tout le texte. Cet exemple de démarrage rapide montre avec quelle facilité IronOCR transforme votre image en texte lisible avec une configuration minimale.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

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

    var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrImageInput(new System.Drawing.Bitmap("image.png")));
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Lire l'exemple System.Drawing.Bitmap

Commencez par instancier la classe IronTesseract pour effectuer la reconnaissance optique de caractères (OCR). Créez un System.Drawing.Bitmap à partir de l'une des différentes méthodes. Dans cet exemple de code, j'ai décidé d'utiliser un chemin de fichier.

Ensuite, utilisez l'instruction using pour créer l'objet OcrImageInput , en lui passant l'image provenant de l'objet System.Drawing.Bitmap . Enfin, utilisez la méthode Read pour effectuer la reconnaissance optique de caractères (OCR).

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-bitmap.cs
using IronOcr;
using System.Drawing;

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

// Read image file to Bitmap
Bitmap bitmap = new Bitmap("Potter.tiff");

// Import System.Drawing.Bitmap
using var imageInput = new OcrImageInput(bitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Read image file to Bitmap
Private bitmap As New Bitmap("Potter.tiff")

' Import System.Drawing.Bitmap
Private imageInput = New OcrImageInput(bitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Lire l'exemple System.Drawing.Image

La lecture d'une System.Drawing.Image est aussi simple que de créer l'objet OcrImageInput avec l'image, puis d'effectuer le processus OCR standard à l'aide de la méthode Read .

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-image.cs
using IronOcr;
using Image = System.Drawing.Image;

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

// Open image file as Image
Image image = Image.FromFile("Potter.tiff");

// Import System.Drawing.Image
using var imageInput = new OcrImageInput(image);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports Image = System.Drawing.Image

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as Image
Private image As Image = Image.FromFile("Potter.tiff")

' Import System.Drawing.Image
Private imageInput = New OcrImageInput(image)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Lisez l'exemple Iron Software.Drawing.AnyBitmap

De même, après avoir créé ou obtenu un objet AnyBitmap , vous pouvez construire la classe OcrImageInput . Le constructeur se chargera de toutes les étapes nécessaires à l'importation des données. L'exemple de code ci-dessous illustre cela.

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-anybitmap.cs
using IronOcr;
using IronSoftware.Drawing;

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

// Open image file as AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Import IronSoftware.Drawing.AnyBitmap
using var imageInput = new OcrImageInput(anyBitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports IronSoftware.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")

' Import IronSoftware.Drawing.AnyBitmap
Private imageInput = New OcrImageInput(anyBitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Spécifiez la zone de numérisation

Lors de la construction de la classe OcrImageInput , vous pouvez spécifier la zone à scanner. Cela vous permet de définir la région spécifique du document image pour la reconnaissance optique de caractères (OCR). Selon le type de document image, la spécification de la zone de numérisation peut améliorer considérablement les performances. Dans l'exemple de code fourni, je précise que seuls le numéro et le titre du chapitre doivent être extraits.

: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)
$vbLabelText   $csharpLabel

Résultat OCR

Lire la région spécifique

Questions Fréquemment Posées

Comment puis-je extraire du texte d'une image bitmap en C# ?

Vous pouvez utiliser IronOCR en créant d'abord une instance de la classe IronTesseract. Ensuite, créez un System.Drawing.Bitmap et passez-le à un objet OcrImageInput. Enfin, utilisez la méthode Read pour extraire le texte.

Quelles étapes sont impliquées dans la lecture à partir d'objets System.Drawing pour les tâches d'OCR ?

Pour lire à partir d'objets System.Drawing avec IronOCR, téléchargez la bibliothèque, obtenez des objets System.Drawing, construisez la classe OcrImageInput, et définissez une région de découpage si nécessaire. Utilisez AnyBitmap pour la compatibilité multiplateforme sur Linux et macOS.

Comment effectuez-vous l'OCR sur un System.Drawing.Image ?

Pour effectuer l'OCR sur un System.Drawing.Image, créez un objet OcrImageInput avec l'image et exécutez la méthode Read dans IronOCR.

Quel est l'avantage d'utiliser AnyBitmap dans les projets multiplateformes ?

Iron Software.Drawing.AnyBitmap permet aux développeurs de remplacer System.Drawing.Common par une solution multiplateforme, permettant la fonctionnalité OCR sur Windows, macOS, et Linux.

Comment les régions de numérisation peuvent-elles améliorer les performances de l'OCR ?

En définissant des régions de numérisation spécifiques dans la classe OcrImageInput, vous pouvez concentrer les efforts de l'OCR sur les zones pertinentes, ce qui peut améliorer considérablement les performances et la précision.

IronOCR est-il compatible avec Linux et macOS ?

Oui, IronOCR est compatible avec Linux et macOS lors de l'utilisation de Iron Software.Drawing.AnyBitmap, offrant une solution multiplateforme pour les tâches d'OCR.

Comment spécifiez-vous une région à numériser dans une image pour l'OCR ?

Dans IronOCR, spécifiez une région de numérisation en définissant les coordonnées et les dimensions dans la classe OcrImageInput, ce qui améliore les performances de l'OCR en se concentrant sur les sections d'image pertinentes.

Quelles classes sont essentielles pour manipuler des images dans des projets OCR .NET ?

Dans les projets OCR .NET, des classes comme System.Drawing.Bitmap, System.Drawing.Image, et Iron Software.Drawing.AnyBitmap sont essentielles pour manipuler des images.

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 ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,167,857 | Version: 2025.11 vient de sortir