この高速 Node-API モジュールの一般的な使用例は、一般的な形式の大きな画像を、Web に適したさまざまなサイズの小さな JPEG、PNG、WebP、GIF、AVIF 画像に変換することです。
これは、Node.js (^18.17.0 または >= 20.3.0)、Deno、Bun など、Node-API v9 のサポートを提供するすべての JavaScript ランタイムで使用できます。
画像のサイズ変更は、通常、libvips を使用するため、最も速い ImageMagick および GraphicsMagick 設定を使用するよりも 4 倍から 5 倍速くなります。
カラースペース、埋め込まれた 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 License バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。ライセンスに準拠する場合を除き、このファイルを使用することはできません。ライセンスのコピーは https://www.apache.org/licenses/LICENSE-2.0 で入手できます。
適用される法律で義務付けられている場合または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」で配布されます。ライセンスに基づく許可と制限を規定する特定の言語については、ライセンスを参照してください。