Kasus penggunaan umum untuk modul Node-API berkecepatan tinggi ini adalah mengonversi gambar besar dalam format umum menjadi gambar JPEG, PNG, WebP, GIF, dan AVIF yang lebih kecil dan ramah web dengan berbagai dimensi.
Ini dapat digunakan dengan semua runtime JavaScript yang menyediakan dukungan untuk Node-API v9, termasuk Node.js (^18.17.0 atau >= 20.3.0), Deno dan Bun.
Mengubah ukuran gambar biasanya 4x-5x lebih cepat daripada menggunakan pengaturan ImageMagick dan GraphicsMagick tercepat karena penggunaan libvips.
Ruang warna, profil ICC yang tertanam, dan saluran transparansi alfa semuanya ditangani dengan benar. Pengambilan sampel ulang Lanczos memastikan kualitas tidak dikorbankan demi kecepatan.
Selain mengubah ukuran gambar, operasi seperti rotasi, ekstraksi, pengomposisian, dan koreksi gamma juga tersedia.
Sebagian besar sistem macOS, Windows, dan Linux modern tidak memerlukan penginstalan tambahan atau dependensi runtime apa pun.
Kunjungi sharp.pixelplumbing.com untuk petunjuk instalasi lengkap, dokumentasi API, pengujian benchmark, dan log perubahan.
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 ) ;
Panduan untuk kontributor mencakup pelaporan bug, meminta fitur, dan mengirimkan perubahan kode.
Hak Cipta 2013 Lovell Fuller dan lainnya.
Berlisensi di bawah Lisensi Apache, Versi 2.0 ("Lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan Lisensi. Anda dapat memperoleh salinan Lisensi di https://www.apache.org/licenses/LICENSE-2.0
Kecuali diwajibkan oleh undang-undang yang berlaku atau disetujui secara tertulis, perangkat lunak yang didistribusikan berdasarkan Lisensi didistribusikan berdasarkan DASAR "APA ADANYA", TANPA JAMINAN ATAU KETENTUAN DALAM BENTUK APAPUN, baik tersurat maupun tersirat. Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan batasan berdasarkan Lisensi.