El caso de uso típico de este módulo Node-API de alta velocidad es convertir imágenes grandes en formatos comunes a imágenes JPEG, PNG, WebP, GIF y AVIF más pequeñas y compatibles con la web de diferentes dimensiones.
Se puede utilizar con todos los tiempos de ejecución de JavaScript que brindan soporte para Node-API v9, incluidos Node.js (^18.17.0 o >= 20.3.0), Deno y Bun.
Cambiar el tamaño de una imagen suele ser entre 4 y 5 veces más rápido que usar las configuraciones más rápidas de ImageMagick y GraphicsMagick debido al uso de libvips.
Los espacios de color, los perfiles ICC integrados y los canales de transparencia alfa se manejan correctamente. El remuestreo de Lanczos garantiza que no se sacrifique la calidad por la velocidad.
Además del cambio de tamaño de la imagen, se encuentran disponibles operaciones como rotación, extracción, composición y corrección gamma.
La mayoría de los sistemas macOS, Windows y Linux modernos no requieren ninguna instalación adicional ni dependencias de tiempo de ejecución.
Visite Sharp.pixelplumbing.com para obtener instrucciones de instalación completas, documentación de API, pruebas comparativas y registro de cambios.
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 ) ;
Una guía para contribuyentes cubre la notificación de errores, la solicitud de funciones y el envío de cambios de código.
Copyright 2013 Lovell Fuller y otros.
Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puede utilizar este archivo excepto de conformidad con la Licencia. Puede obtener una copia de la Licencia en https://www.apache.org/licenses/LICENSE-2.0
A menos que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer el idioma específico que rige los permisos y limitaciones de la Licencia.