概要
- 本記事はMicrosoft 開発者ブログの引用で、ConclusionをDeeplで和訳、整理したものになります。
- 詳細はリンク先を参照ください。パフォーマンスや品質についても述べられています。
- 2017年1月時点の情報なので、今は状況が変わっているかもしれません。
結論
.NET Core上での画像処理のためのライブラリは、さまざまな要件に対応できるように、今日では多くの選択肢がありますが、近い将来さらに多くの選択肢が出てくるでしょう。
- パフォーマンスを優先するならば、CoreCompat.System.Drawingが良い
- ただし、Windowsサーバーのシナリオでのロック問題がアプリケーションを停止させてしまわない場合に限る
- SkiaSharpは、Linuxのセットアップ問題が解決されれば、品質を損なうことなくパフォーマンスを提供する素晴らしい選択肢となる
- 品質を最優先に考え、Windowsのみで動作する場合、MagicScalerはパフォーマンスを犠牲にすることなく、素晴らしい選択肢となる
- ファイルタイプのサポートを優先するのであれば、Magick.NETが良い
- ただし、クロスプラットフォームのサポートはまだ不十分
- 現時点で利用可能な唯一の純粋なマネージドコードライブラリであるImageSharp
- その性能はMagick.NETに近い
- ネイティブに依存せず、.NET Coreのどこでも動作することを保証している
- このライブラリはまだアルファ版であり、特に将来のSpanとrefリターンの使用により、大幅なパフォーマンスの向上が見込まれる。
私見
.NET Coreはどのプラットフォームでも動作するという点が強みであると考えています。したがって、上記の記事を読む限りでは、ImageSharpが最も有力であるかなと思いました。
ただ、2年前の記事であるので、ちゃんと選定したい場合には各ライブラリの対応状況を確認したほうが良いと思われます。
.NET Coreの画像処理ライブラリに知見を持つ人がいらっしゃれば是非コメントをお願いします!