이 고속 Node-API 모듈의 일반적인 사용 사례는 일반적인 형식의 큰 이미지를 다양한 크기의 더 작고 웹 친화적인 JPEG, PNG, WebP, GIF 및 AVIF 이미지로 변환하는 것입니다.
Node.js(^18.17.0 또는 >= 20.3.0), Deno 및 Bun을 포함하여 Node-API v9에 대한 지원을 제공하는 모든 JavaScript 런타임과 함께 사용할 수 있습니다.
이미지 크기 조정은 일반적으로 libvips 사용으로 인해 가장 빠른 ImageMagick 및 GraphicsMagick 설정을 사용하는 것보다 4x-5x 더 빠릅니다.
색상 공간, 내장된 ICC 프로필 및 알파 투명도 채널이 모두 올바르게 처리됩니다. Lanczos 리샘플링은 속도를 위해 품질이 희생되지 않도록 보장합니다.
이미지 크기 조정은 물론 회전, 추출, 합성, 감마 보정 등의 작업도 가능합니다.
대부분의 최신 macOS, Windows 및 Linux 시스템에는 추가 설치 또는 런타임 종속성이 필요하지 않습니다.
전체 설치 지침, API 문서, 벤치마크 테스트 및 변경 로그를 보려면 Sharp.pixelplumbing.com을 방문하세요.
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 ) ;
기여자를 위한 가이드에서는 버그 보고, 기능 요청 및 코드 변경 제출에 대해 다룹니다.
저작권 2013 Lovell Fuller 및 기타.
Apache 라이센스 버전 2.0("라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다. https://www.apache.org/licenses/LICENSE-2.0에서 라이센스 사본을 얻을 수 있습니다.
해당 법률에서 요구하거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건 없이 "있는 그대로" 배포됩니다. 라이선스에 따른 허가 및 제한 사항을 관리하는 특정 언어는 라이선스를 참조하세요.