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

How to Read from System.Drawing Objects

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

System.Drawing.Bitmap est une classe du .NET Framework 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 d'image GDI+ dans le .NET Framework. Il s'agit de la classe parentale pour divers types d'images, y compris System.Drawing.Bitmap.

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

Quickstart : Read Text from a System.Drawing.Bitmap

En une simple instruction, 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 comment IronOCR transforme sans effort votre image en texte lisible avec une configuration minimale.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrImageInput(new System.Drawing.Bitmap("image.png")));
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer


Lire l'exemple System.Drawing.Bitmap

Tout d'abord, instanciez la classe IronTesseract pour effectuer l'OCR. Créez un System.Drawing.Bitmap à partir de l'une des différentes méthodes. Dans l'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 transmettant l'image de l'objet System.Drawing.Bitmap. Enfin, utilisez la méthode Read pour effectuer l'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 la création de l'objet OcrImageInput avec l'image, puis l'exécution du 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

Lire l'exemple IronSoftware.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 en est la preuve.

: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 région d'analyse

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 l'OCR. En fonction du document image, la spécification de la région 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 de l'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 ?

IronSoftware.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 IronSoftware.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 IronSoftware.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,044,537 | Version : 2025.11 vient de sortir