Module de traitement d'image rapide et rapide dans Node.js

Sharp est un module de traitement d'image qui utilise la bibliothèque libvips pour fournir un traitement rapide des projets Node.js.

Sharp est un module d'image de traitement rapide pour les projets Node.js qui sont alimentés par la bibliothèque de traitement de l'image de libération. En raison de cet ajout, Sharp, comme le nom, a une puissance de traitement à haute vitesse puisqu'elle ne stocke que quelques régions des données d'image comprimées dans la mémoire en dégageant une grande partie de la puissance de CPU et L1/L2/L2

La bibliothèque s'assure également qu'aucun processus enfant n'est généré et que les processus asynchrones ou en attente sont pris en charge. En tant que module de traitement d'image open source, Sharp prend également en charge plusieurs formats d'image ainsi que des données de pixels brutes non compressées. Pour des performances optimales, assurez-vous d'utiliser Node.js version 10 et supérieure.

Previous Next

Premiers pas avec Sharp

La méthode recommandée pour installer Sharp via NPM. Veuillez utiliser la commande suivante pour l'installer.

Installer Sharp via NPM

 npm install sharp 

Redimensionner les images via l'API JavaScript gratuite

La bibliothèque haute source permet à JavaScript développeurs de réserver des images programmées. Sharp vous permet de convertir les grands formats d'image en plus petites dimensions compatibles avec différentes applications Web. Avec l'aide de la grande bibliothèque, Sharp a une vitesse de traitement d'image de 4 à 5 fois plus rapide que d'autres convertisseurs de format d'image tels que ImageMagick ou GraphicsMagick. Sharp s’assure que la qualité de l’image n’est pas compromise par le module d’échantillonnage des Lancers.

Lire Rétablir des images par JavaScript

const transformer = sharp()
  .resize({
    width: 200,
    height: 200,
    fit: sharp.fit.cover,
    position: sharp.strategy.entropy
  });
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
  .pipe(transformer)
  .pipe(writableStream)

Traitement d'image via l'API JavaScript gratuite

La grande bibliothèque permet aux concepteurs de logiciels de traiter l'image dans le cadre de JavaScript. Vous pouvez effectuer des opérations d'image telles que la résidence, la rotation, l'extraction, les corrections et la composition de l'image. Sharp est compatible avec MacOS systèmes Windows et Linux et n'a pas besoin d'installations supplémentaires pour utiliser la version 10 et plus de Node.js.

Extraire l'image d'une région par JavaScript

sharp(input)
  .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
  .resize(width, height)
  .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
  .toFile(output, function(err) {
    // Extract a region, resize, then extract from the resized image
  });

Image rotatique par JavaScript API

const rotateThenResize = await sharp(input)
  .rotate(90)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .toBuffer();
const resizeThenRotate = await sharp(input)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .rotate(90)
  .toBuffer();

Travailler avec les métadonnées d'image dans JavaScript Apps

La bibliothèque haute source a fourni un soutien complet pour travailler avec les métadonnées d'images dans JavaScript applications. La bibliothèque offre un accès rapide aux métadonnées d'images sans décodage de données de pixel comprimées. Elle a inclus le soutien de plusieurs propriétés importantes telles que la taille de l'image, le format, la hauteur, la largeur, la densité, l'espace, le fond, la sortie, la page et beaucoup plus. Vous pouvez aussi facilement accéder aux statistiques d'image obtenues par pixel pour chaque canal de l'image, comme min, max, somme, moyenne, netteté, entropie et beaucoup plus.

Image d'accès Métadonnées via JavaScript

const image = sharp(inputJpg);
image
  .metadata()
  .then(function(metadata) {
    return image
      .resize(Math.round(metadata.width / 2))
      .webp()
      .toBuffer();
  })
  .then(function(data) {
    // data contains a WebP image half the width and height of the original JPEG
  });
 Français