Utilisation d'anciennes versions de System.Drawing avec IronOCR
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.' ". C'est parce qu'IronOCR n'a pas pu reconnaître System.Drawing.Image comme un type d'entrée valide.

Essayer de spécifier un type d'entrée Image comme OcrInput(Image: image) entraînera une erreur "ne peut pas convertir de System.Drawing.Image à SixLabors.ImageSharp.Image".

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.
OcrInputpeut être instancié avec le typeSixLabors.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);
}
}
}Imports IronOcr
Imports SixLabors.ImageSharp
Imports SixLabors.ImageSharp.PixelFormats
Friend Class Program
Shared Sub Main()
Dim Ocr = New IronTesseract()
' Load the image using SixLabors.ImageSharp
Dim image As Image = System.Drawing.Image.Load(Of Rgba32)("image.jpg")
' Use the image as input for OCR
Using Input = New OcrInput(image)
' Perform OCR on the input
Dim Result = Ocr.Read(Input)
' Print the recognized text
Console.WriteLine(Result.Text)
End Using
End Sub
End Class- Le code ci-dessus initialise une instance de
IronTesseract, charge une image à partir d'un fichier en utilisantSixLabors.ImageSharp, puis traite l'image avec IronOCR pour extraire le texte.

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.