.NET Coreを使ってアプリケーション開発しようとするときに開発者が気づく欠点の1つは、画像ベースのAPIが欠けていることである。普及しているAPIの中の1つとして、すばらしいSystem.Drawing
があるが、これはWindowsベースのGDI+インターフェイスに依存しているため、.NET Coreでは利用できない。幸運なことに、多くのデベロッパーコミュニティが、.NET Coreをサポートする画像ライブラリを作成する取り組みをしてきた。
MicrosoftのBertrand Le Roy氏は、それぞれのライブラリの調査と比較を行い、それらの適合性を評価した。最初の調査は、これら4つの実装のアウトプットとパフォーマンスを比較するための有用な基準を示している。
- CoreCompat.System.Drawing
- ImageSharp
- Magick.NET
- SkiaSharp
System.Drawing
に依存しているコードの開発者は、CoreCompat.System.Drawingライブラリが一時的な代替として有用であることがわかるであろう。ただし、Windowsで実行する場合、ロックの問題が発生する可能性がある。
ImageSharpはピュアマネージコードで書かれた新しいライブラリである。これにより、パフォーマンスの向上のためにネイティブコードを使用しないで、クロスプラットフォームのサポートが大幅に向上できる。
Magick.NETは、オープンソースのImageMagickライブラリ用の.NETベースのラッパーである。これは、多くの機能を提供し、Le Roy氏が最高の画像品質と考えるものを作り出すが、現在はWindows上で.NET Coreのみをサポートしている。他のプラットフォームのサポートについて、Magick.NETの著者(Dirk Lemstra氏)はImageMagick自体をクロスプラットフォームとして提供したいと考えている。
SkiaSharpにはGoogleのSkiaクロスプラットフォームの2Dグラフィックライブラリ用の.NETラッパーがあるが、.NET Coreはサポートしていない。 Miguel de Icaza氏は、.NETコアをサポートするための課題について説明している。
Le Roy氏は結論として、どのライブラリが現在の個々のニーズに最も適しているかを述べている。CoreCompate.System.Drawingは、ロックの問題が許容されるアプリケーションであると仮定した場合、高いパフォーマンスを発揮する。Magick.NETは最高の品質とファイルタイプをサポートしている。最後に、ImageSharpはピュアマネージコードであり、性能は他のライブラリに劣るが、積極的な開発が進んでいるため、近い将来、より適切な最適化が可能となる。
Rate this Article
- Editor Review
- Chief Editor Action