IronOCR와 함께 System.Drawing의 오래된 버전 사용하기
.NET 4.6.1에서 .NET 4.8 프로젝트는 내장된 System.Drawing 버전 4.0.0과 함께 제공되며, 이 System.Drawing 버전은 지원되지 않으며 취약한 코드가 포함될 수 있습니다.
System.Drawing.Image에서 OcrInput을 인스턴스화하려고 하면 "IronOcr.Exceptions.IronOcrProductException: '올바른 이미지 파일로 Object []를 구문 분석할 수 없습니다.'." 이는 IronOCR가 System.Drawing.Image를 유효한 입력 유형으로 인식하지 못했기 때문입니다.

OcrInput(Image: image)와 같이 Image 입력 유형을 지정하려고 하면 "System.Drawing.Image를 SixLabors.ImageSharp.Image로 변환할 수 없습니다"라는 오류가 발생합니다.

가능한 해결책
-
System.Drawing.Common을 버전 6.0.0으로 업데이트하세요. System.Drawing의 이전 버전은 지원되지 않으며 취약한 코드를 포함할 수 있습니다.
- SixLabors.ImageSharp 버전 2.1.3을 사용하십시오.
OcrInput은SixLabors.ImageSharp.Image유형으로 인스턴스화할 수 있습니다.
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
- 위 코드는
IronTesseract의 인스턴스를 초기화하고,SixLabors.ImageSharp를 사용하여 파일에서 이미지를 불러온 다음, IronOCR로 이미지를 처리하여 텍스트를 추출합니다.

