IronOCRの文字認識・テキスト抽出での System.Drawing.Common の代替(.NET 7および非Windows)
文字認識・テキスト抽出で"System.Drawing.Common はこのプラットフォームではサポートされていません"を回避するための回避策
- .NET 6 および .NET 7 の Linux および macOS プラットフォームでは、 System.Drawing.Commonを実装することはできません。
- "System.Drawing.Common はこのプラットフォームではサポートされていません"という例外メッセージが表示されます。
- .NET 6 の場合、 System.Drawing.EnableUnixSupportランタイム構成をtrueに設定します。
- .NET 7 でもサポートされなくなったことに注意してください。
- IronSoftware.Drawingオープンソース ライブラリを使用して、.NET 7 のSystem.Drawing.Commonを置き換えます。
.NET 6 および .NET 7 では、Microsoft は Linux および macOS でのSystem.Drawing.Common のサポートを停止しました。 公式ドキュメントに従って、ライブラリは Windows プラットフォームでのみ動作します。
- Windows 以外のオペレーティング システムでは、内部例外として
TypeInitializationExceptionがスローされ、PlatformNotSupportedExceptionがスローされます。 - .NET 6 では、 System.Drawing.Commonを参照するコードが Windows 以外のオペレーティング システム用にコンパイルされると、プラットフォーム アナライザーによってコンパイル時の警告が出力されます。 さらに、構成オプションが設定されていない場合、次のランタイム例外がスローされます。
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
.NET 6 での一時的な回避策:
Windows 以外のプラットフォームのサポートを有効にするには、runtimeconfig.json ファイルで System.Drawing.EnableUnixSupport ランタイム構成スイッチを true に設定します。
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
プログラムで Unix サポートを有効にするには、コードの先頭に次のコードを追加します。
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
.NET 7
.NET 7 のリリースにより、Microsoft は回避策を削除し、Linux および macOS 上のSystem.Drawing.Commonのサポートを完全に削除しました。
Iron Software は、 System.Drawing.Commonのオープンソース代替品であるIronSoftware.Drawingをリリースしました。 NuGetとGitHubで見つけることができます。
詳細については、ドキュメントページをご覧ください: Iron Software Drawing Documentation

