Uso de versiones anteriores de System.Drawing con IronOCR

26 de abril, 2023
Actualizado 20 de octubre, 2024
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

El proyecto .NET 4.6.1 a .NET 4.8 viene con System.Drawing incorporado versión 4.0.0. Esta versión de System.Drawing está fuera de soporte y puede contener código vulnerable.

Intentar instanciar OcrInput desde System.Drawing.Image lanzará "IronOcr.Exceptions.IronOcrProductException: 'No se puede analizar Object [] como un archivo de imagen válido.' Esto se debe a que IronOcr no pudo reconocer System.Drawing.Image como un tipo de entrada válido."

File 98vFtYIpSc related to Uso de versiones anteriores de System.Drawing con IronOCR

Intentar especificar el tipo de entrada de imagen como OcrInput(Image: image) generará un error "cannot convert from System.Drawing.Image to SixLabors.ImageSharp.Image".

File F8XzQZbpbl related to Uso de versiones anteriores de System.Drawing con IronOCR

Posible solución

  • Actualiza System.Drawing.Common a la versión 6.0.0

    La versión anterior de System.Drawing no es compatible y puede contener código vulnerable.

  • Utilice SixLabors.ImageSharp versión 2.1.3

    OcrInput puede instanciarse con el tipo 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
$vbLabelText   $csharpLabel