この高速 Node-API モジュールの一般的な使用例は、一般的な形式の大きな画像を、さまざまなサイズのより小さな Web 対応の JPEG、PNG、WebP、GIF、および AVIF 画像に変換することです。
Node.js >= 18.17.0、Deno、Bun など、Node-API v9 をサポートするすべての JavaScript ランタイムで使用できます。
libvips を使用しているため、画像のサイズ変更は通常、最も高速な ImageMagick および GraphicsMagick 設定を使用する場合よりも 4 倍から 5 倍高速です。
色空間、埋め込み ICC プロファイル、およびアルファ透明度チャネルはすべて正しく処理されます。Lanczos 再サンプリングにより、速度のために品質が犠牲になることがありません。
画像のサイズ変更だけでなく、回転、抽出、合成、ガンマ補正などの操作も利用できます。
最新の macOS、Windows、Linux システムのほとんどは、追加のインストールやランタイム依存関係を必要としません。
形式
このモジュールは、JPEG、PNG、WebP、GIF、AVIF、TIFF、SVG 画像の読み取りをサポートしています。
出力画像は、JPEG、PNG、WebP、GIF、AVIF、TIFF 形式のほか、圧縮されていない生のピクセル データにすることができます。
ストリーム、バッファ オブジェクト、およびファイル システムを入力と出力に使用できます。
単一の入力ストリームを複数の処理パイプラインに分割して、ストリームを出力できます。
ディープズーム画像ピラミッドを生成できます。これは、OpenSeadragon などの「スリッピーマップ」タイルビューアでの使用に適しています。
高速
このモジュールは、1989 年にバークベック大学で最初に作成され、現在は John Cupitt が率いる小規模チームによって保守されている、非常に高速な libvips 画像処理ライブラリによって動作します。
圧縮されていない画像データの小さな領域のみがメモリに保持され、一度に処理されるため、複数の CPU コアと L1/L2/L3 キャッシュを最大限に活用できます。
libuv のおかげですべてが非ブロッキングのままで、子プロセスは生成されず、Promises/async/await がサポートされます。
最適
mozjpeg と pngquant の機能を使用すると、それぞれ JPEG と PNG 画像のファイル サイズを最適化できます。個別の imagemin プロセスを呼び出す必要はありません。
JPEG 出力画像を生成するときにハフマン テーブルが最適化されるため、jpegoptim や jpegtran などの個別のコマンド ライン ツールを使用する必要はありません。
PNG フィルタリングはデフォルトで無効になっています。ダイアグラムや線画の場合、pngcrush と同じ結果になることがよくあります。
アニメーション GIF 出力のファイル サイズは、 gifsicle などの別のコマンド ライン ツールを使用せずに最適化されます。
貢献
貢献者向けのガイドでは、バグの報告、機能のリクエスト、コード変更の送信について説明しています。
ライセンス
Copyright 2013 Lovell Fuller およびその他。
Apache License、バージョン 2.0 (以下「ライセンス」) に基づいてライセンスされています。ライセンスに準拠しない限り、このファイルを使用することはできません。ライセンスのコピーは https://www.apache.org/licenses/LICENSE-2.0 から入手できます。
適用法で義務付けられている場合、または書面で同意されている場合を除き、ライセンスに基づいて配布されるソフトウェアは「現状のまま」で配布され、明示的または黙示的を問わず、いかなる種類の保証または条件もありません。ライセンスに基づく許可と制限を規定する具体的な文言については、ライセンスを参照してください。