Le cas d'utilisation typique de ce module Node-API haute vitesse consiste à convertir des images volumineuses dans des formats courants en images JPEG, PNG, WebP, GIF et AVIF plus petites et conviviales pour le Web, de dimensions variables.
Il peut être utilisé avec tous les environnements d'exécution JavaScript prenant en charge Node-API v9, y compris Node.js (^18.17.0 ou >= 20.3.0), Deno et Bun.
Le redimensionnement d'une image est généralement 4 à 5 fois plus rapide que l'utilisation des paramètres ImageMagick et GraphicsMagick les plus rapides en raison de l'utilisation de libvips.
Les espaces colorimétriques, les profils ICC intégrés et les canaux de transparence alpha sont tous gérés correctement. Le rééchantillonnage Lanczos garantit que la qualité n'est pas sacrifiée au profit de la vitesse.
Outre le redimensionnement de l'image, des opérations telles que la rotation, l'extraction, la composition et la correction gamma sont disponibles.
La plupart des systèmes macOS, Windows et Linux modernes ne nécessitent aucune dépendance d'installation ou d'exécution supplémentaire.
Visitez Sharp.pixelplumbing.com pour obtenir des instructions d'installation complètes, de la documentation API, des tests de référence et un journal des modifications.
npm install sharp
const sharp = require ( 'sharp' ) ;
sharp ( inputBuffer )
. resize ( 320 , 240 )
. toFile ( 'output.webp' , ( err , info ) => { ... } ) ;
sharp ( 'input.jpg' )
. rotate ( )
. resize ( 200 )
. jpeg ( { mozjpeg : true } )
. toBuffer ( )
. then ( data => { ... } )
. catch ( err => { ... } ) ;
const semiTransparentRedPng = await sharp ( {
create : {
width : 48 ,
height : 48 ,
channels : 4 ,
background : { r : 255 , g : 0 , b : 0 , alpha : 0.5 }
}
} )
. png ( )
. toBuffer ( ) ;
const roundedCorners = Buffer . from (
'<svg><rect x="0" y="0" width="200" height="200" rx="50" ry="50"/></svg>'
) ;
const roundedCornerResizer =
sharp ( )
. resize ( 200 , 200 )
. composite ( [ {
input : roundedCorners ,
blend : 'dest-in'
} ] )
. png ( ) ;
readableStream
. pipe ( roundedCornerResizer )
. pipe ( writableStream ) ;
Un guide destiné aux contributeurs couvre le signalement des bogues, la demande de fonctionnalités et la soumission de modifications de code.
Copyright 2013 Lovell Fuller et autres.
Sous licence Apache, version 2.0 (la « Licence » ); vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence. Vous pouvez obtenir une copie de la licence sur https://www.apache.org/licenses/LICENSE-2.0
Sauf disposition contraire de la loi applicable ou accord écrit, le logiciel distribué sous la licence est distribué « EN L'ÉTAT », SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.