sharp vs imagemin vs imagemin-pngquant vs imagemin-webp vs pngquant vs gulp-imagemin vs imagemin-mozjpeg
画像圧縮ライブラリ
sharpimageminimagemin-pngquantimagemin-webppngquantgulp-imageminimagemin-mozjpeg類似パッケージ:

画像圧縮ライブラリ

これらのライブラリは、画像のサイズを削減し、ウェブサイトのパフォーマンスを向上させるために使用されます。画像圧縮は、ページの読み込み時間を短縮し、ユーザーエクスペリエンスを向上させるために重要です。これらのパッケージは、異なる画像フォーマットに特化した機能を提供し、開発者が効率的に画像を最適化できるようにします。

npmのダウンロードトレンド

3 年

GitHub Starsランキング

統計詳細

パッケージ
ダウンロード数
Stars
サイズ
Issues
公開日時
ライセンス
sharp37,990,62332,030534 kB1204ヶ月前Apache-2.0
imagemin910,5275,7196.23 kB791年前MIT
imagemin-pngquant335,8463257.28 kB162年前MIT
imagemin-webp155,3215166.18 kB203年前MIT
pngquant11,2148317.9 kB43年前BSD-3-Clause
gulp-imagemin01,9058.21 kB234ヶ月前MIT
imagemin-mozjpeg02577.29 kB234年前MIT

機能比較: sharp vs imagemin vs imagemin-pngquant vs imagemin-webp vs pngquant vs gulp-imagemin vs imagemin-mozjpeg

圧縮効率

  • sharp:

    sharpは、非常に高速な画像処理ライブラリで、リサイズや変換を行いながら圧縮を行います。特に大きな画像を扱う場合に効果的です。

  • imagemin:

    imageminは、さまざまなプラグインを使用して、JPEG、PNG、GIFなどの画像を圧縮します。圧縮の設定を細かく調整できるため、ニーズに応じた最適化が可能です。

  • imagemin-pngquant:

    imagemin-pngquantは、PNG画像の圧縮に特化しており、256色に減色することでファイルサイズを大幅に削減します。

  • imagemin-webp:

    imagemin-webpは、WebPフォーマットの画像を圧縮するためのプラグインで、JPEGやPNGよりもさらに小さいファイルサイズを実現します。

  • pngquant:

    pngquantは、PNG画像の圧縮を行うためのCLIツールで、簡単に高効率な圧縮が可能です。

  • gulp-imagemin:

    gulp-imageminは、Gulpタスクランナーと統合されており、ストリーム処理を通じて画像を圧縮します。これにより、効率的に複数の画像を一度に処理できます。

  • imagemin-mozjpeg:

    imagemin-mozjpegは、特にJPEG画像の圧縮に特化しており、画質を維持しながらファイルサイズを削減します。

使用シナリオ

  • sharp:

    高性能な画像処理が必要な場合や、リアルタイムで画像を処理する必要がある場合に最適です。

  • imagemin:

    さまざまな画像フォーマットを扱うプロジェクトで、柔軟な圧縮オプションが必要な場合に適しています。

  • imagemin-pngquant:

    PNG画像のサイズを削減したい場合や、特にPNGを多く扱うプロジェクトに適しています。

  • imagemin-webp:

    WebPフォーマットを使用する場合や、最新の画像フォーマットを取り入れたいプロジェクトに最適です。

  • pngquant:

    シンプルなCLIツールを求める場合や、スクリプトから簡単に呼び出したい場合に適しています。

  • gulp-imagemin:

    Gulpを使用しているプロジェクトで、ビルドプロセスの一部として画像圧縮を自動化したい場合に最適です。

  • imagemin-mozjpeg:

    JPEG画像の品質を重視する場合や、特にJPEG画像を多く扱うプロジェクトに最適です。

パフォーマンス

  • sharp:

    非常に高速な画像処理を実現しており、大量の画像を迅速に処理することができます。

  • imagemin:

    プラグインの選択により、圧縮のパフォーマンスを調整できるため、ニーズに応じた最適化が可能です。

  • imagemin-pngquant:

    PNG画像の圧縮に特化しており、効果的なアルゴリズムを使用してファイルサイズを削減します。

  • imagemin-webp:

    WebPフォーマットの圧縮を行うことで、JPEGやPNGよりも小さいファイルサイズを実現し、パフォーマンスを向上させます。

  • pngquant:

    シンプルで軽量なツールであり、迅速にPNG画像を圧縮できるため、パフォーマンスが高いです。

  • gulp-imagemin:

    Gulpのストリーム処理を活用することで、大量の画像を効率的に処理できるため、ビルド時間を短縮します。

  • imagemin-mozjpeg:

    高品質なJPEG圧縮を提供しつつ、ファイルサイズを削減するため、パフォーマンスと画質のバランスが取れています。

学習曲線

  • sharp:

    豊富な機能を持つため、すべての機能を理解するには時間がかかるかもしれませんが、基本的な使い方は比較的簡単です。

  • imagemin:

    基本的な使い方は簡単ですが、プラグインの設定や最適化には少し学習が必要です。

  • imagemin-pngquant:

    シンプルなCLIツールであり、使い方は直感的ですが、効果的な圧縮のためにはパラメータの理解が必要です。

  • imagemin-webp:

    WebPフォーマットに不慣れな場合は、使い方を学ぶ必要がありますが、基本的な使い方は簡単です。

  • pngquant:

    CLIツールとして非常にシンプルで、学習曲線はほとんどありません。

  • gulp-imagemin:

    Gulpを使用している場合は、比較的簡単に導入できるが、Gulp自体の学習が必要です。

  • imagemin-mozjpeg:

    特にJPEG圧縮に特化しているため、他のプラグインと組み合わせる際に理解が必要です。

拡張性

  • sharp:

    豊富な機能を持ち、他のライブラリと組み合わせて使用することができるため、拡張性があります。

  • imagemin:

    さまざまなプラグインを追加することで、機能を拡張できるため、柔軟性があります。

  • imagemin-pngquant:

    PNG圧縮に特化しているため、他のimageminプラグインと組み合わせて使用することができます。

  • imagemin-webp:

    WebPフォーマットを扱うためのプラグインとして、他のimageminプラグインと組み合わせて使用できます。

  • pngquant:

    シンプルなCLIツールであり、他のツールと組み合わせて使用することが容易です。

  • gulp-imagemin:

    Gulpのプラグインとして動作するため、他のGulpプラグインと組み合わせて使用することが容易です。

  • imagemin-mozjpeg:

    特にJPEG圧縮に特化しているため、他のimageminプラグインと組み合わせて使用することができます。

選び方: sharp vs imagemin vs imagemin-pngquant vs imagemin-webp vs pngquant vs gulp-imagemin vs imagemin-mozjpeg

  • sharp:

    高性能な画像処理が必要な場合は、sharpを選択してください。画像のリサイズ、変換、圧縮を迅速に行えます。

  • imagemin:

    一般的な画像圧縮が必要な場合、imageminを選択すると、さまざまなプラグインを使用して画像を圧縮できます。

  • imagemin-pngquant:

    PNG画像の圧縮を行いたい場合は、imagemin-pngquantを選択してください。PNG画像のサイズを大幅に削減できます。

  • imagemin-webp:

    WebPフォーマットの画像を使用する場合、imagemin-webpを選択すると、WebP形式に変換し、圧縮することができます。

  • pngquant:

    PNG画像の圧縮を行うために、シンプルなCLIツールが必要な場合は、pngquantを選択してください。

  • gulp-imagemin:

    Gulpを使用している場合、gulp-imageminを選択すると、ストリーム処理を通じて画像を簡単に圧縮できます。

  • imagemin-mozjpeg:

    JPEG画像の圧縮を特に重視する場合は、imagemin-mozjpegを選択してください。高品質なJPEG圧縮を提供します。

sharp のREADME

sharp

sharp logo

The typical use case for this high speed Node-API module is to convert large images in common formats to smaller, web-friendly JPEG, PNG, WebP, GIF and AVIF images of varying dimensions.

It can be used with all JavaScript runtimes that provide support for Node-API v9, including Node.js (^18.17.0 or >= 20.3.0), Deno and Bun.

Resizing an image is typically 4x-5x faster than using the quickest ImageMagick and GraphicsMagick settings due to its use of libvips.

Colour spaces, embedded ICC profiles and alpha transparency channels are all handled correctly. Lanczos resampling ensures quality is not sacrificed for speed.

As well as image resizing, operations such as rotation, extraction, compositing and gamma correction are available.

Most modern macOS, Windows and Linux systems do not require any additional install or runtime dependencies.

Documentation

Visit sharp.pixelplumbing.com for complete installation instructions, API documentation, benchmark tests and changelog.

Examples

npm install sharp
const sharp = require('sharp');

Callback

sharp(inputBuffer)
  .resize(320, 240)
  .toFile('output.webp', (err, info) => { ... });

Promise

sharp('input.jpg')
  .rotate()
  .resize(200)
  .jpeg({ mozjpeg: true })
  .toBuffer()
  .then( data => { ... })
  .catch( err => { ... });

Async/await

const semiTransparentRedPng = await sharp({
  create: {
    width: 48,
    height: 48,
    channels: 4,
    background: { r: 255, g: 0, b: 0, alpha: 0.5 }
  }
})
  .png()
  .toBuffer();

Stream

const roundedCorners = Buffer.from(
  '<svg><rect x="0" y="0" width="200" height="200" rx="50" ry="50"/></svg>'
);

const roundedCornerResizer =
  sharp()
    .resize(200, 200)
    .composite([{
      input: roundedCorners,
      blend: 'dest-in'
    }])
    .png();

readableStream
  .pipe(roundedCornerResizer)
  .pipe(writableStream);

Contributing

A guide for contributors covers reporting bugs, requesting features and submitting code changes.

Licensing

Copyright 2013 Lovell Fuller and others.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.