Using Older Versions of System.Drawing with IronOCR

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

.NET 4.6.1 bis .NET 4.8 Projekte kommen mit einer integrierten System.Drawing Version 4.0.0. Diese Version von System.Drawing wird nicht mehr unterstützt und kann verwundbaren Code enthalten.

Der Versuch, OcrInput von System.Drawing.Image zu instanziieren, wird "IronOcr.Exceptions.IronOcrProductException: 'Unable to parse Object [] as a valid image file.'" werfen. Dies liegt daran, dass IronOcr System.Drawing.Image nicht als gültigen Eingabetyp erkennen konnte.

Fehlerbildschirmfoto

Der Versuch, den Bild-Eingabetyp wie OcrInput(Image: image) anzugeben, wird einen "cannot convert from System.Drawing.Image to SixLabors.ImageSharp.Image" Fehler werfen.

Konvertierungsfehler Bildschirmfoto

Mögliche Lösungen

  • Aktualisieren Sie System.Drawing.Common auf Version 6.0.0. Die ältere Version von System.Drawing wird nicht mehr unterstützt und kann verwundbaren Code enthalten.

  • Verwenden Sie SixLabors.ImageSharp Version 2.1.3. OcrInput kann mit dem SixLabors.ImageSharp.Image Typ instanziiert werden.
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);
        }
    }
}
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
$vbLabelText   $csharpLabel
  • Der obige Code initialisiert eine Instanz von IronTesseract, lädt ein Bild aus einer Datei mit SixLabors.ImageSharp und verarbeitet dann das Bild mit IronOCR, um Text zu extrahieren.
Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,044,537 | Version: 2025.11 gerade veröffentlicht