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.
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
});