デジタル時代において画像は私たちのブラウジング体験の中心に位置しています。しかし、その一方でこれらの画像はしばしば大きな帯域幅を占有し、ウェブサイトのパフォーマンスに影響を及ぼします。そこで画像のサイズを縮小するというプロセスである画像最適化を行うことで、この問題に対処することができます。本記事では、PNGやJPGなどの画像ファイルをWebPに変換し、Node.jsを使用して圧縮する方法を探っていきます。
Googleによって開発されたモダンな画像フォーマットであるWebPは、ウェブ画像において優れたロスレスおよびロスイー圧縮を提供します。PNGやJPGファイルをWebPに変換することで、画像の品質を損なうことなくより小さいファイルサイズを実現し、ウェブサイトの読み込み時間を短縮することができます。
変換プロセスを開始する前に、Node.jsがインストールされていることを確認しましょう。インストールされていない場合は、ダウンロードしてインストールしてください。
画像変換にはsharp
パッケージ、画像圧縮にはimagemin-webp
パッケージを使用します。
npm install sharp imagemin imagemin-webp
sharp
モジュールを使ってPNGまたはJPG画像をWebPに変換しましょう。これは入力ファイルを読み込んでWebP形式に変換することで行われます。
const sharp = require('sharp');
sharp('input.png')
.webp()
.toFile('output.webp')
.then(() => console.log('画像の変換が完了しました。'))
.catch(err => console.error(err));
次に、変換されたWebP画像をimagemin-webp
モジュールを使用して圧縮しましょう。
const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');
(async () => {
await imagemin(['output.webp'], {
destination: 'compressed_images',
plugins: [
imageminWebp({quality: 50})
]
});
console.log('画像の圧縮が完了しました。');
})();
const sharp = require('sharp');
const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');
sharp('input.png')
.webp()
.toFile('output.webp')
.then(() => {
(async () => {
await imagemin(['output.webp'], {
destination: 'compressed_images',
plugins: [
imageminWebp({quality: 50})
]
});
console.log('画像の変換および圧縮が完了しました。');
})();
})
.catch(err => console.error(err));
この完全なスクリプトにより、画像がWebP形式に変換され、圧縮されます。
以上がNode.jsでPNGやJPGをWebPに変換し圧縮する効率的な方法です。これにより、画像を最適化し、ウェブサイトの読み込み時間を短縮し、より良いユーザーエクスペリエンスを提供できるようになります。少しの練習を積めば、これらの手順は自然なものになるでしょう。
imagemin-webp
プラグインを使用して品質パラメータを調整し、圧縮レベルを制御することができます。Private NPM Registryの重要性と、Verdaccioでの構築方法を理解する |
---|
画像最適化: Node.jsでPNG、JPGをWebPに変換して圧縮 |
CloneCoding
1行のコードから始まる革新!