Sharp.js: Die Node.js Bildverarbeitungsbibliothek
Wenn Sie ein Linux-Benutzer sind und in Ihren Webentwicklungsprojekten mit Bildern arbeiten, sind Sie möglicherweise auf die Notwendigkeit gestoßen, Bilder zu bearbeiten – Größe ändern, Zuschneiden, Konvertieren von Formaten und mehr. Es gibt zwar viele Bibliotheken, aber eine der beliebtesten und leistungsstärksten ist die Sharp.js.
In diesem Blogbeitrag gehen wir darauf ein, warum Sharp.js das beste Node.js Image-Framework ist, insbesondere für Linux-Benutzer, die gerade erst anfangen. Außerdem erfahren Sie, wie Sie es installieren und für grundlegende Imagevorgänge verwenden.
Was ist Sharp.js?
Sharp.js handelt sich um eine Bildverarbeitungsbibliothek für Node.js, die eine leistungsstarke API zum Bearbeiten von Bildern bereitstellt.
Es unterstützt eine Vielzahl von Vorgängen, darunter Größenänderung, Zuschneiden, Drehen und Konvertieren von Bildformaten. Das Framework baut auf der libvips-Bibliothek auf, die im Vergleich zu anderen Bildverarbeitungsbibliotheken wie ImageMagick oder GraphicsMagick für ihre Geschwindigkeit und Speichereffizienz bekannt ist.
Sharp.js kann eine Vielzahl von Bildformaten verarbeiten, darunter JPEG, PNG, WebP, TIFF und GIF, was sich besonders gut für Anwendungen eignet, die eine große Anzahl von Bildern verarbeiten müssen oder schnelle Verarbeitungszeiten erfordern.
Installieren von Sharp.js unter Linux
Bevor Sie Sharp.js verwenden können, müssen Sie Node.js auf Ihrem System installiert haben. Wenn Sie es nicht installiert haben, können Sie es aus unserer Anleitung installieren: So installieren Sie NodeJS unter Linux.
Sobald Node.js installiert ist, können Sie mit der Installation von Sharp.js fortfahren, wie gezeigt.
mkdir sharp-image-processing
cd sharp-image-processing
npm init -y
npm install sharp
Nach der Installation können Sie überprüfen, ob Sharp.js korrekt installiert ist, indem Sie die Version überprüfen:
node -e "console.log(require('sharp').version)"
Wenn alles korrekt eingerichtet ist, sollte die Versionsnummer der Sharp.js in der Konsole angezeigt werden.
Verwendung von Sharp.js für die Bildverarbeitung
Nachdem Sharp.js nun installiert ist, sehen wir uns einige gängige Aufgaben zur Bildbearbeitung an.
1. Ändern der Größe eines Bildes mit Node.js
Das Ändern der Bildgröße ist eine der häufigsten Aufgaben in der Bildverarbeitung und macht es sharp.js einfach, die Größe von Bildern mit nur wenigen Codezeilen (resize.js) zu ändern.
const sharp = require('sharp');
sharp('input.png')
.resize(300, 200) // Resize to 300px by 200px
.toFile('output.png', (err, info) => {
if (err) {
console.error('Error resizing image:', err);
} else {
console.log('Image resized successfully:', info);
}
});
Nachdem Sie Ihr Skript erstellt haben, führen Sie es mit Node.js aus:
node resize.js
In diesem Beispiel:
- Das Eingabebild (
input.png) wird auf eine Breite von 300 px und eine Höhe von 200 px verkleinert. - Die Ausgabe wird als
output.pnggespeichert.
Sie können das Seitenverhältnis auch beibehalten, indem Sie nur eine Dimension (Breite oder Höhe) angeben, und Sharp.js passt die andere Dimension automatisch an.
2. Zuschneiden eines Bildes mit Node.js
Sharp.js ermöglicht es Ihnen, ein Bild auf einen bestimmten Bereich zuzuschneiden.
sharp('input.png')
.extract({ left: 100, top: 100, width: 400, height: 300 }) // Crop the image
.toFile('cropped.png', (err, info) => {
if (err) {
console.error('Error cropping image:', err);
} else {
console.log('Image cropped successfully:', info);
}
});
Die extract-Methode verwendet ein Objekt mit den Eigenschaften left, top, width und height und definiert den Bereich, der zugeschnitten werden soll.
3. Konvertieren von Bildformaten mit Node.js
Sharp.js ermöglicht es Ihnen, Bilder einfach zwischen verschiedenen Formaten zu konvertieren.
sharp('input.png')
.toFormat('jpeg')
.toFile('output.jpg', (err, info) => {
if (err) {
console.error('Error converting image format:', err);
} else {
console.log('Image format converted successfully:', info);
}
});
Sharp.js unterstützt mehrere Formate, darunter WebP, TIFF und GIF. Sie können Bilder in eines dieser Formate konvertieren, indem Sie die toFormat-Methode verwenden.
4. Drehen eines Bildes mit Node.js
Das Drehen von Bildern ist eine weitere nützliche Funktion, die Sharp.js unterstützt.
sharp('input.png')
.rotate(90) // Rotate by 90 degrees
.toFile('rotated.png', (err, info) => {
if (err) {
console.error('Error rotating image:', err);
} else {
console.log('Image rotated successfully:', info);
}
});
Dadurch wird das Bild um 90 Grad gedreht und als rotated.png gespeichert.
5. Anwenden von Filtern mit Node.js
Sharp.js unterstützt auch das Anwenden von Filtern auf Bilder, z. B. Weichzeichnen, Schärfen oder Graustufen.
sharp('input.png')
.blur(5) // Apply a blur effect with a radius of 5
.toFile('blurred.png', (err, info) => {
if (err) {
console.error('Error applying blur effect:', err);
} else {
console.log('Blur effect applied successfully:', info);
}
});
Sie können blur(5) durch andere Filtermethoden wie sharpen(), grayscale() oder normalize() ersetzen, um unterschiedliche Effekte zu erzielen.
Schlussfolgerung
Sharp.js ist zweifellos eine der besten Bildverarbeitungsbibliotheken für Node.js und bietet eine schnelle, effiziente und einfach zu bedienende Lösung für die Bearbeitung von Bildbearbeitungsaufgaben.
Mit seiner breiten Palette an Funktionen, darunter Größenänderung, Zuschneiden, Formatkonvertierung und Filter, kann Sharp.js Ihnen helfen, Hochleistungsanwendungen zu erstellen, die Bilder in großem Maßstab verarbeiten müssen.
