Utilisation d'anciennes versions de System.Drawing avec IronOcr
le projet .NET 4.6.1 à .NET 4.8 est livré avec la version 4.0.0\ de System.Drawing intégrée. Cette version de System.Drawing n'est plus supportée et peut contenir du code vulnérable.
Essayer d'instancier OcrInput à partir de System.Drawing.Image déclenchera l'exception "IronOcr.Exceptions.IronOcrProductException: 'Unable to parse Object [] as a valid image file.'. Cela est dû au fait qu'IronOcr n'a pas pu reconnaître System.Drawing.Image comme un type d'entrée valide."
Essayer de spécifier le type d'entrée d'image comme OcrInput(Image : image) entraînera une erreur "cannot convert from System.Drawing.Image to SixLabors.ImageSharp.Image"
Solution possible
Mettez à jour System.Drawing.Common à la version 6.0.0
Une version plus ancienne de System.Drawing n'est plus prise en charge et peut contenir du code vulnérable.
Utilisez la version 2.1.3 de SixLabors.ImageSharp
OcrInput peut être instancié avec le type SixLabors.ImageSharp.Image.
var Ocr = new IronTesseract();
Image image = Image.Load("image.jpg");
using (var Input = new OcrInput(image))
{
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
Image image = Image.Load("image.jpg");
using (var Input = new OcrInput(image))
{
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Dim image As Image = System.Drawing.Image.Load("image.jpg")
Using Input = New OcrInput(image)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using