sharp
v0.33.5
這種高速 Node-API 模組的典型用例是將常見格式的大圖像轉換為較小的、網絡友好的不同尺寸的 JPEG、PNG、WebP、GIF 和 AVIF 圖像。
它可與所有支援 Node-API v9 的 JavaScript 執行階段一起使用,包括 Node.js(^18.17.0 或 >= 20.3.0)、Deno 和 Bun。
由於使用了 libvips,調整影像大小通常比使用最快的 ImageMagick 和 GraphicsMagick 設定快 4 倍到 5 倍。
色彩空間、嵌入式 ICC 配置檔案和 Alpha 透明度通道均已正確處理。 Lanczos 重採樣確保不會為了速度而犧牲品質。
除了影像大小調整之外,還可以進行旋轉、提取、合成和伽瑪校正等操作。
大多數現代 macOS、Windows 和 Linux 系統不需要任何額外的安裝或執行時間相依性。
請造訪 Sharp.pixelplumbing.com,以取得完整的安裝說明、API 文件、基準測試和變更日誌。
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 取得授權副本
除非適用法律要求或書面同意,否則根據許可證分發的軟體均以「原樣」分發,不帶任何明示或暗示的保證或條件。請參閱許可證,了解許可證下管理權限和限制的特定語言。