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から.NET 4.8プロジェクトには、組み込みのSystem.Drawingバージョン4.0.0が付属しています。このバージョンのSystem.Drawingはサポートが終了しており、脆弱なコードが含まれている可能性があります。

System.Drawing.ImageからOcrInputをインスタンス化しようとすると、"IronOcr.Exceptions.IronOcrProductException: 'Unable to parse Object [] as a valid image file.'"がスローされます。 これはIronOcrがSystem.Drawing.Imageを有効な入力タイプとして認識できなかったためです。

エラーのスクリーンショット

OcrInput(Image: image)のようにImage入力タイプを指定しようとすると、"cannot convert from System.Drawing.Image to 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
$vbLabelText   $csharpLabel
  • 上記のコードはIronTesseractのインスタンスを初期化し、SixLabors.ImageSharpを使ってファイルから画像をロードし、IronOCRで画像を処理してテキストを抽出します。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 5,044,537 | バージョン: 2025.11 ただ今リリースされました