Manipolare immagini in Node.js con sharp

Mattepuffo's logo
Manipolare immagini in Node.js con sharp

Manipolare immagini in Node.js con sharp

sharp è una libreria per Node.js che ci consente di manipolare le immagini.

In pratica possiamo fare le classiche operazioni di conversione, ridimensionamento, cropping, ecc.

L'ho trovata molto facile da usare, anche se l'ho testata solo in locale.

Sul sito ci sono diverse istruzioni per diverse piattaforme.

Per il nostro esempio per installarla ci basta npm:

npm install sharp

Qui sotto un pò di codice:

import sharp from "sharp";

const imgInput = "1.jpg";
const imgResize = "1_resize.jpg";
const imgCrop = "1_crop.jpg";
const imgRuotata = "1_rot.jpg";
const imgConvert = "1_conv.png";

// RESIZING
sharp(imgInput)
    .resize(300)
    .toFile(imgResize, (err, info) => {
      if (err) {
        console.error('Errore: ', err);
      } else {
        console.log('Operazione eseguita: ', info);
      }
    });

// CROPPING
sharp(imgInput)
    .extract({left: 100, top: 100, width: 200, height: 200})
    .toFile(imgCrop, (err, info) => {
      if (err) {
        console.error('Errore: ', err);
      } else {
        console.log('Operazione eseguita: ', info);
      }
    });

// ROTAZIONE
sharp(imgInput)
    .rotate(90)
    .toFile(imgRuotata, (err, info) => {
      if (err) {
        console.error('Errore: ', err);
      } else {
        console.log('Operazione eseguita: ', info);
      }
    });

// CONVERSIONE
sharp(imgInput)
    .toFormat('png')
    .toFile(imgConvert, (err, info) => {
      if (err) {
        console.error('Errore: ', err);
      } else {
        console.log('Operazione eseguita: ', info);
      }
    });

Per quanto riguarda il resizing, potete indicare entrambe le dimensioni.

Se ne indicate una, l'altra verrà calcolata automaticamente; nel mio caso ho dato solo la larghezza.

Enjoy!


Condividi

Commentami!