備忘録

備忘録

.NET CoreでSystem.Drawingを使う

Ⅰ. はじめに

System.Drawing は WindowsのGDI+に依存している為、標準の.NET Coreで利用することができません。
解決策として System.Drawing.Common を使う方法を紹介します。

Ⅱ. やり方

1. NuGetからインストールする
Install-Package System.Drawing.Common
2. サンプルプログラムを書く
static void Main()
{
  var bmp = new System.Drawing.Bitmap(100, 100);
  bmp.Save("out.png");
}
3. 実行結果

f:id:kagasu:20190808233044p:plain

トラブルシューティング

Q. Linuxで実行すると以下のエラーが表示されます。
Unhandled Exception:
  System.TypeInitializationException:
  The type initializer for 'Gdip' threw an exception.
    ---> System.DllNotFoundException:
      Unable to load DLL 'libgdiplus': The specified module could not be found.

A. 以下のコマンドを実行し、libgdiplusをインストールして下さい。

apt-get install -y libgdiplus