Utilisation d'anciennes versions de System.Drawing avec IronOCR

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

Les projets .NET 4.6.1 à .NET 4.8 intègrent une version 4.0.0 de System.Drawing. Cette version de System.Drawing n'est plus prise en charge et peut contenir du code vulnérable.

La tentative d'instanciation d'OcrInput à partir de System.Drawing.Image générera l'erreur suivante : " IronOcr.Exceptions.IronOcrProductException : 'Impossible d'analyser l'objet [] comme un fichier image valide.' ". Cela s'explique par le fait qu'IronOcr n'a pas pu reconnaître System.Drawing.Image comme un type d'entrée valide.

Capture d'écran d'erreur

Toute tentative de spécification d'un type d'entrée Image tel que OcrInput(Image: image) générera une erreur " impossible de convertir de System.Drawing.Image en SixLabors.ImageSharp.Image ".

Capture d'écran d'erreur de conversion

Solutions possibles

  • Mettez à jour System.Drawing.Common vers la version 6.0.0. L'ancienne version de System.Drawing n'est plus prise en charge et peut contenir du code vulnérable.

  • Utilisez SixLabors.ImageSharp version 2.1.3. OcrInput peut être instancié avec le type SixLabors.ImageSharp.Image.
using IronOcr;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

class Program
{
    static void Main()
    {
        var Ocr = new IronTesseract();

        // Load the image using SixLabors.ImageSharp
        Image image = Image.Load<Rgba32>("image.jpg");

        // Use the image as input for OCR
        using (var Input = new OcrInput(image))
        {
            // Perform OCR on the input
            var Result = Ocr.Read(Input);

            // Print the recognized text
            Console.WriteLine(Result.Text);
        }
    }
}
using IronOcr;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

class Program
{
    static void Main()
    {
        var Ocr = new IronTesseract();

        // Load the image using SixLabors.ImageSharp
        Image image = Image.Load<Rgba32>("image.jpg");

        // Use the image as input for OCR
        using (var Input = new OcrInput(image))
        {
            // Perform OCR on the input
            var Result = Ocr.Read(Input);

            // Print the recognized text
            Console.WriteLine(Result.Text);
        }
    }
}
$vbLabelText   $csharpLabel
  • Le code ci-dessus initialise une instance de IronTesseract, charge une image à partir d'un fichier en utilisant SixLabors.ImageSharp, puis traite l'image avec IronOCR pour extraire le texte.
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
Prêt à commencer?
Nuget Téléchargements 5,525,971 | Version : 2026.3 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronOcr
lancez un échantillon regardez votre image se transformer en texte consultable.