BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ImageSharp 2.0.0が機能満載でリリース

ImageSharp 2.0.0が機能満載でリリース

原文(投稿日:2022/03/25)へのリンク

2月7日、最もポピュラーな.NETイメージ処理ライブラリのひとつであるImageSharpのバージョン2がリリースされた。リリースには、WebP、TIFF、PBM、加えてXNPのサポート、JPEGおよびPNGフォーマットに関するさまざまなパフォーマンス向上や機能向上などが、おもな機能として含まれている。今回のリリースで、.NET Standard 1.3のサポートが廃止された。バージョン1.0.4のリプレースとなるアップデートである。

新たなピクセル処理と低レベル管理APIは、Six Laborsによると、パフォーマンスが大幅に向上した。特にSystem.Drawingに関しては、2017から使用されていた旧バージョンよりも3倍高速になっている。これによってImageSharpは、ベンチマーク上、最も高速なクロスプラットフォームライブラリになった、とSix Laborsは述べている。このベンチマークは、16GBマシンで.NET 6を使用して、"イメージのロード、イメージのサイズ変更、イメージの保存"という同じテストを8つの異なるライブラリで実行したものだ。

もうひとつの重要なアップデートは、Image Mutate/Cloneを使った量子化アルゴリズム(大集合(多くは連続的集合)からの入力値を、加算小集合(多くは要素数の有限な集合)にマッピングするプロセス)の強化である。

Microsoftのサポートが終了したNetStandard 1.3のサポート廃止に加えて、新バージョンでは、ガベージコレクタの問題に対処するためにアンマネージドプーリングMemoryAllocatorを採用することで、メモリ管理機能の改善とパフォーマンスの向上を実現している。

今回のリリースでは、新たに多くのフォーマットがサポート対象となった。特に注目すべきなのは、WebP(コミュニティからの要望が続いていた)、TIFF、PBM、XMPメタデータのサポートだ。XMPメタデータは、一般的なディジタルドキュメントにXMP情報を組み込むための拡張型メタデータを定義し、処理するための標準的データモデルおよびシリアライゼーションフォーマットとして、Adobeがそのオリジナルを設計したものだ。

ImageFormat format;

using (var image = Image.Load(inputStream, out format))
{
    image.Mutate(c => c.Resize(30, 30));
    image.SaveAsWebp(outputStream, format); // ImageSharp provides common extension methods to save an image into a stream using a specific format.
}

今回のリリースにはさまざまなバグ修正や拡張も含まれている。例えばWebPでは、ルックアップに辞書ではなくバイト配列を使うようになった。JPEGのエンコーディングは、FDCTからの二度の転置呼び出しを廃止することで最適化されている。非同期JPEGデコードでRGB24を使用する際の問題なども修正された。数年前のバージョン1以来、最大のリリースである。

新機能と機能強化が満載の今回のリリースだが、ひとつ大きな問題が残っている。それはJXL(JPEG XL)のサポートだ。

ImageSharp 2.0.0を構成する新機能や機能強化の詳細については、公式リリースノートを参照してほしい。

 

作者について

この記事に星をつける

おすすめ度
スタイル

BT