IronOCR ile Daha Eski System.Drawing Sürümlerini Kullanmak
.NET 4.6.1'den .NET 4.8 projelerine kadar, yerleşik bir System.Drawing sürümü 4.0.0 ile gelir. Bu System.Drawing sürümü desteğini kaybetmiş ve güvenlik açığı içerebilir.
OcrInput değişkenini System.Drawing.Image nesnesinden başlatmaya çalışmak, "IronOcr.Exceptions.IronOcrProductException: 'Bir nesneyi [] geçerli bir resim dosyası olarak ayrıştırılamıyor.'" istisnasını atar. Bu, IronOcr'ın System.Drawing.Image'i geçerli bir giriş türü olarak tanıyamaması nedeniyle oluşur.

Girdi türü olarak OcrInput(Image: image) belirtmeye çalışmak, 'System.Drawing.Image'dan SixLabors.ImageSharp.Image'a dönüştürülemiyor' hatası verecektir.

Olası Çözümler
-
System.Drawing.Common'i 6.0.0 sürümüne güncelleyin. Daha eski System.Drawing sürümü desteğini kaybetmiş ve güvenlik açığı içerebilir.
- SixLabors.ImageSharp sürüm 2.1.3 kullanın.
OcrInput,SixLabors.ImageSharp.Imagetürüyle başlatılabilir.
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
- Yukarıdaki kod,
IronTesseractörneğini başlatır,SixLabors.ImageSharpkullanarak bir dosyadan görüntü yükler ve ardından IronOCR ile görüntüyü işlemden geçirip metin çıkarır.

