L'era digitale ha portato le immagini al centro della nostra esperienza di navigazione. Tuttavia, il problema è che queste immagini possono spesso occupare una considerevole larghezza di banda, influenzando le prestazioni del sito web. Possiamo contrastare questo problema riducendo le dimensioni delle immagini tramite un processo chiamato Ottimizzazione delle immagini. In questo articolo, esploreremo come convertire file immagine come PNG e JPG in WebP e comprimerli utilizzando Node.js.
Perché scegliere WebP?
WebP, un moderno formato di immagine sviluppato da Google, offre una compressione superiore con perdita e senza perdita per le immagini web. Convertendo file PNG e JPG in WebP, possiamo ottenere dimensioni di file più piccole senza compromettere la qualità delle immagini, velocizzando quindi il caricamento dei nostri siti web.
Configurazione di Node.js
Prima di iniziare il processo di conversione, assicuriamoci di avere Node.js installato. Se non è presente, scaricalo e installalo in base al tuo sistema operativo.
Installazione dei moduli necessari
Utilizzeremo due pacchetti npm: sharp per la conversione delle immagini e imagemin-webp per la compressione delle immagini.
npm install sharp imagemin imagemin-webp
Conversione delle immagini in WebP
Utilizziamo il modulo sharp per convertire un'immagine PNG o JPG in WebP. Ciò avviene leggendo il file di input e trasformandolo nel formato WebP.
const sharp = require('sharp');
sharp('input.png')
.webp()
.toFile('output.webp')
.then(() => console.log('Conversione dell'immagine completata.'))
.catch(err => console.error(err));
Compressione delle immagini WebP
Successivamente, comprimiamo l'immagine WebP convertita utilizzando il modulo 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('Compressione dell'immagine completata.');
})();
Codice completo
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('Conversione e compressione dell'immagine completate.');
})();
})
.catch(err => console.error(err));
Questo script completo convertirà la tua immagine nel formato WebP e la comprimerà.
Conclusioni
Ecco a te un modo efficiente per convertire e comprimere PNG e JPG in WebP con Node.js. Ora puoi ottimizzare le tue immagini, velocizzare i tempi di caricamento del tuo sito web e offrire una migliore esperienza utente. Con un po' di pratica, questi passaggi diventeranno naturali.
Domande frequenti
Perché dovrei utilizzare WebP anziché PNG o JPG? WebP offre una compressione superiore, riducendo le dimensioni dei file senza una significativa perdita di qualità delle immagini.
Perché dobbiamo comprimere le immagini? La compressione delle immagini riduce le dimensioni dei file, migliorando notevolmente i tempi di caricamento del sito web e risparmiando larghezza di banda.
Posso utilizzare altri linguaggi di programmazione per questa attività? Sì, anche altri linguaggi come Python, Java, ecc. dispongono di librerie per la conversione e la compressione delle immagini. Tuttavia, questo tutorial si focalizza su Node.js.
Cosa succede se il processo di conversione o compressione fallisce? Verifica che Node.js e tutti i moduli necessari siano correttamente installati. Se il problema persiste, potrebbe essere un problema legato all'immagine stessa.
Posso regolare il livello di compressione? Sì, il plugin
imagemin-webpconsente di regolare il parametro di qualità per controllare il livello di compressione.