กรณีการใช้งานทั่วไปสำหรับโมดูล Node-API ความเร็วสูงนี้คือการแปลงรูปภาพขนาดใหญ่ในรูปแบบทั่วไปให้เป็นรูปภาพ JPEG, PNG, WebP, GIF และ AVIF ที่มีขนาดเล็กลงและเหมาะกับเว็บในขนาดต่างๆ
สามารถใช้ได้กับรันไทม์ JavaScript ทั้งหมดที่ให้การสนับสนุน Node-API v9 รวมถึง Node.js (^18.17.0 หรือ >= 20.3.0), Deno และ Bun
โดยทั่วไปการปรับขนาดรูปภาพจะเร็วกว่าการใช้การตั้งค่า ImageMagick และ GraphicsMagick ที่เร็วที่สุดถึง 4x-5 เท่า เนื่องจากใช้ libvips
ปริภูมิสี โปรไฟล์ ICC ที่ฝัง และช่องความโปร่งใสอัลฟ่าได้รับการจัดการอย่างถูกต้อง การสุ่มตัวอย่างใหม่ของ 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
เว้นแต่กฎหมายที่ใช้บังคับกำหนดหรือตกลงเป็นลายลักษณ์อักษร ซอฟต์แวร์ที่เผยแพร่ภายใต้ใบอนุญาตนี้จะถูกแจกจ่าย "ตามที่เป็น" โดยไม่มีการรับประกันหรือเงื่อนไขใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ดูใบอนุญาตสำหรับภาษาเฉพาะที่ควบคุมการอนุญาตและข้อจำกัดภายใต้ใบอนุญาต