Using Older Versions of System.Drawing with IronOCR
.NET 4.6.1 to .NET 4.8 projects come with a built-in System.Drawing version 4.0.0. This version of System.Drawing is out of support and may contain vulnerable code.
Trying to instantiate OcrInput from System.Drawing.Image will throw "IronOcr.Exceptions.IronOcrProductException: 'Unable to parse Object [] as a valid image file.'". This is because IronOCR could not recognize System.Drawing.Image as a valid input type.

Trying to specify Image input type like OcrInput(Image: image) will throw a "cannot convert from System.Drawing.Image to SixLabors.ImageSharp.Image" error.

Possible Solutions
-
Update System.Drawing.Common to a current, supported version. The older version of System.Drawing is out of support and may contain vulnerable code.
- Load the image with
OcrInput.LoadImage, which accepts a file path,byte[],Stream, orIronSoftware.Drawing.AnyBitmap. In current IronOCR,OcrInputhas a parameterless constructor and handles image loading internally, so you do not need SixLabors.ImageSharp or System.Drawing to prepare the input.
using IronOcr;
class Program
{
static void Main()
{
var Ocr = new IronTesseract();
// Load the image directly with IronOCR
using (var Input = new OcrInput())
{
Input.LoadImage("image.jpg");
// Perform OCR on the input
var Result = Ocr.Read(Input);
// Print the recognized text
Console.WriteLine(Result.Text);
}
}
}
using IronOcr;
class Program
{
static void Main()
{
var Ocr = new IronTesseract();
// Load the image directly with IronOCR
using (var Input = new OcrInput())
{
Input.LoadImage("image.jpg");
// Perform OCR on the input
var Result = Ocr.Read(Input);
// Print the recognized text
Console.WriteLine(Result.Text);
}
}
}
Imports IronOcr
Class Program
Shared Sub Main()
Dim Ocr As New IronTesseract()
' Load the image directly with IronOCR
Using Input As New OcrInput()
Input.LoadImage("image.jpg")
' Perform OCR on the input
Dim Result = Ocr.Read(Input)
' Print the recognized text
Console.WriteLine(Result.Text)
End Using
End Sub
End Class
- The above code initializes an instance of
IronTesseract, loads an image from a file withOcrInput.LoadImage, and then processes the image with IronOCR to extract text.

