Der typische Anwendungsfall für dieses Hochgeschwindigkeits-Node-API-Modul ist die Konvertierung großer Bilder in gängigen Formaten in kleinere, webfreundliche JPEG-, PNG-, WebP-, GIF- und AVIF-Bilder unterschiedlicher Größe.
Es kann mit allen JavaScript-Laufzeiten verwendet werden, die Unterstützung für Node-API v9 bieten, einschließlich Node.js (^18.17.0 oder >= 20.3.0), Deno und Bun.
Aufgrund der Verwendung von libvips ist die Größenänderung eines Bildes in der Regel vier- bis fünfmal schneller als die Verwendung der schnellsten ImageMagick- und GraphicsMagick-Einstellungen.
Farbräume, eingebettete ICC-Profile und Alpha-Transparenzkanäle werden alle korrekt verarbeitet. Lanczos Resampling stellt sicher, dass die Qualität nicht auf Kosten der Geschwindigkeit geht.
Neben der Größenänderung von Bildern stehen auch Vorgänge wie Drehung, Extraktion, Komposition und Gammakorrektur zur Verfügung.
Die meisten modernen macOS-, Windows- und Linux-Systeme erfordern keine zusätzlichen Installations- oder Laufzeitabhängigkeiten.
Besuchen Sie Sharp.pixelplumbing.com für vollständige Installationsanweisungen, API-Dokumentation, Benchmark-Tests und Änderungsprotokolle.
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 ) ;
Ein Leitfaden für Mitwirkende behandelt das Melden von Fehlern, das Anfordern von Funktionen und das Einreichen von Codeänderungen.
Copyright 2013 Lovell Fuller und andere.
Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Sie können eine Kopie der Lizenz unter https://www.apache.org/licenses/LICENSE-2.0 erhalten
Sofern nicht durch geltendes Recht vorgeschrieben oder schriftlich vereinbart, wird die im Rahmen der Lizenz vertriebene Software „WIE BESEHEN“ und OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Die spezifische Sprache, die die Berechtigungen und Einschränkungen im Rahmen der Lizenz regelt, finden Sie in der Lizenz.