O caso de uso típico para este módulo Node-API de alta velocidade é converter imagens grandes em formatos comuns em imagens JPEG, PNG, WebP, GIF e AVIF menores e compatíveis com a web, de dimensões variadas.
Ele pode ser usado com todos os tempos de execução JavaScript que fornecem suporte para Node-API v9, incluindo Node.js (^18.17.0 ou >= 20.3.0), Deno e Bun.
Redimensionar uma imagem é normalmente 4x-5x mais rápido do que usar as configurações mais rápidas do ImageMagick e GraphicsMagick devido ao uso de libvips.
Espaços de cores, perfis ICC incorporados e canais de transparência alfa são tratados corretamente. A reamostragem da Lanczos garante que a qualidade não seja sacrificada pela velocidade.
Além do redimensionamento de imagens, estão disponíveis operações como rotação, extração, composição e correção gama.
A maioria dos sistemas macOS, Windows e Linux modernos não requerem nenhuma instalação adicional ou dependências de tempo de execução.
Visite sharp.pixelplumbing.com para obter instruções completas de instalação, documentação da API, testes de benchmark e changelog.
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 ) ;
Um guia para contribuidores abrange relatórios de bugs, solicitação de recursos e envio de alterações de código.
Copyright 2013 Lovell Fuller e outros.
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em https://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.