Ubuntu 18.04 LTSの.NET CoreでSystem.Drawing.Commonを使う
もともと.NETのSystem.DrawingはWindowsのGDI+でしか動かない。
そんな中、MSが出してくれた.NET Core向けのSystem.Drawingライブラリがこれ。
Nugetで導入できる。
Windowsだと特になにもしなくても動作するのだが、
Ubuntuではlibgdiplusのインストールが必要。
画像編集ならSkiaSharpライブラリが使いやすかったので、こちらも参考にどうぞ。
■ libgdiplus をいれる?
じゃあaptしようぜ!って話なのだが、入れられるバージョンが古すぎてバグだらけでしょうもない。
(アルファチャンネルがちゃんと動かないとか)
というわけで最新ソースからビルドしてlibgdiplusを入れるのがよいと思う。結構直ってるぽかった。
最新ソースから入れてもまだバグっぽい動作をするけどこれは今後に期待!というか貢献せねば。
■ libgdiplusをソースからビルド
手順ほぼこのまま。
参考:GitHub – mono/libgdiplus: C-based implementation of the GDI+ API
ビルドに必要なパッケージをインストールする。
apt-get install libgif-dev autoconf libtool automake build-essential gettext libglib2.0-dev libcairo2-dev libtiff-dev libexif-dev
GitHubからソースをクローンする。
cd git init git clone https://github.com/mono/libgdiplus.git
スクリプトを実行していつものmake。
cd libgdiplus ./autogen.sh make ./configure make install
無事インストールできたらライブラリを有効化する。
ldconfig
有効化の確認は以下でOK。
ldconfig -p | grep libgdiplus
これでソースからビルドしたlibgdiplusで.NET Coreが動く!簡単!