IronOCR で System.Drawing の古いバージョンを使用する

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: 'オブジェクト [] を有効な画像ファイルとして解析できません。'"がスローされます。 これは、IronOcrがSystem.Drawing.Imageを有効な入力タイプとして認識できなかったためです。

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

OcrInput(Image: image)のような画像入力タイプを指定しようとすると、"System.Drawing.Image から SixLabors.ImageSharp.Image に変換できません"というエラーがスローされます。

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

考えられる解決策

  • System.Drawing.Commonをバージョン 6.0.0 に更新してください。古いバージョンの System.Drawing はサポート対象外であり、脆弱なコードが含まれている可能性があります。

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

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

準備はできましたか?
Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース