Modulo di elaborazione delle immagini rapido e veloce in Node.js

Sharp è un modulo di elaborazione delle immagini che utilizza la libreria libvips per fornire un'elaborazione rapida per i progetti Node.js.

Sharp è un modulo immagine a elaborazione rapida per progetti Node.js basato sulla libreria di elaborazione immagini libvips. A causa di questa aggiunta, Sharp come suggerisce il nome ha una potenza di elaborazione ad alta velocità in quanto memorizza solo alcune regioni dei dati di immagine non compressi nella memoria liberando gran parte della potenza della CPU utilizzata e della cache L1/L2/L3

La libreria si assicura inoltre che nessun processo figlio venga generato e che i processi asincroni o in attesa siano supportati. Come modulo di elaborazione delle immagini open source, Sharp supporta più formati di immagine e anche dati di pixel grezzi non compressi. Per prestazioni ottimali, assicurati di utilizzare Node.js versione 10 e successive.

Previous Next

Iniziare con Sharp

Il modo consigliato per installare Sharp tramite NPM. Si prega di utilizzare il seguente comando per installarlo.

Installa Sharp tramite NPM

 npm install sharp 

Ridimensiona le immagini tramite l'API JavaScript gratuita

La libreria open source nitida consente a JavaScript sviluppatori di ridimensionare le immagini programmaticamente. Sharp consente di convertire grandi formati di immagine in dimensioni più piccole che sono compatibili con diverse applicazioni web. Con l'aiuto della libreria nitida, Sharp ha una velocità di elaborazione dell'immagine 4-5 volte più veloce rispetto ad altri convertitori di formato dell'immagine come ImageMagick o GraphicsMagick. Sharp assicura che la qualità dell’immagine non sia compromessa dal modulo di campionamento Lancers.

Leggi e Ridimensiona le immagini via JavaScript

const transformer = sharp()
  .resize({
    width: 200,
    height: 200,
    fit: sharp.fit.cover,
    position: sharp.strategy.entropy
  });
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
  .pipe(transformer)
  .pipe(writableStream)

Elaborazione delle immagini tramite API JavaScript gratuita

La libreria nitida consente agli sviluppatori di software di elaborare l'immagine nel quadro JavaScript . È possibile eseguire operazioni di immagine come immagine residua, rotazione, estrazione, correzioni e composizione. Sharp è compatibile con i sistemi MacOS, Windows e Linux e non richiede ulteriori installazioni quando si utilizza Node.js Versione 10 e oltre.

Estrarre Immagine da una Regione via JavaScript

sharp(input)
  .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
  .resize(width, height)
  .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
  .toFile(output, function(err) {
    // Extract a region, resize, then extract from the resized image
  });

Ruotare l'immagine tramite JavaScript API

const rotateThenResize = await sharp(input)
  .rotate(90)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .toBuffer();
const resizeThenRotate = await sharp(input)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .rotate(90)
  .toBuffer();

Lavorare con i metadati immagine in JavaScript App

La libreria aperta ha incluso il pieno supporto per lavorare con Image Metadata all'interno di JavaScript applicazioni. La libreria fornisce un accesso rapido ai metadati delle immagini senza decodificare i dati dei pixel compressi. Ha incluso il supporto per diverse proprietà importanti come dimensione dell'immagine, formato, altezza, larghezza, profondità, densità, spazio, livelli, sfondo, uscita, dsprofile, pagina, e molti altri. È inoltre possibile accedere facilmente alle statistiche di immagini derivate da pixel per ogni canale nell'immagine come min, max, somma, media, nitidezza, entropia e molti altri.

Accesso ai metadati immagine via JavaScript

const image = sharp(inputJpg);
image
  .metadata()
  .then(function(metadata) {
    return image
      .resize(Math.round(metadata.width / 2))
      .webp()
      .toBuffer();
  })
  .then(function(data) {
    // data contains a WebP image half the width and height of the original JPEG
  });
 Italiano