Traitement d'images en Node.js : bibliothèques Sharp, Jimp et gm

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec des images en Node.js : aperçu des meilleures bibliothèques



Dans le développement web moderne avec Node.js, il est souvent nécessaire de traiter des images par programmation : redimensionner, convertir des formats, ajouter des filigranes ou optimiser pour accélérer le chargement des sites. Dans cet article, nous examinerons les trois bibliothèques les plus populaires pour travailler avec des images dans l'environnement Node.js : Sharp, Jimp et gm (GraphicsMagick).



1. Sharp — traitement rapide et efficace



La bibliothèque Sharp utilise le module natif libvips, écrit en C, ce qui garantit des performances maximales. Elle est idéale pour les applications serveur où il est nécessaire de traiter rapidement des dizaines, voire des centaines d'images par seconde.



Installation

npm install sharp


Principales fonctionnalités et exemples

  • Redimensionnement — resize(width, height)
  • Conversion de formats — toFormat('webp')
  • Recadrage et rotation — extract(), rotate()
  • Ajout de texte — composite()


Exemple : redimensionnement et conversion en WebP

const sharp = require('sharp');

sharp('input.jpg') .resize(800, 600) .toFormat('webp') .toFile('output.webp') .then(info => console.log('Terminé :', info)) .catch(err => console.error(err));


Exemple : création d'une vignette avec recadrage

const sharp = require('sharp');

sharp('large-photo.jpg') .resize(200, 200, { fit: 'cover' }) .toFile('thumbnail.jpg') .then(() => console.log('Vignette créée'));


2. Jimp — une solution purement JavaScript



La bibliothèque Jimp (JavaScript Image Manipulation Program) est entièrement écrite en JavaScript et ne nécessite pas l'installation de dépendances système supplémentaires. Cela en fait un choix idéal pour les environnements où les modules natifs ne peuvent pas être utilisés (par exemple, certaines plateformes cloud).



Installation

npm install jimp


Principales fonctionnalités

  • Redimensionnement, recadrage, rotation
  • Application d'effets de couleur (niveaux de gris, inversion)
  • Ajout de texte avec choix de police
  • Gestion de la transparence (PNG)


Exemple : ajout de texte sur une image

const Jimp = require('jimp');

Jimp.read('background.png') .then(image => { return Jimp.loadFont(Jimp.FONT_SANS_32_WHITE) .then(font => { image.print(font, 50, 50, 'Bonjour le monde !'); return image.writeAsync('result.png'); }); }) .catch(err => console.error(err));


Exemple : conversion en niveaux de gris

const Jimp = require('jimp');

Jimp.read('colorful.jpg') .then(image => { return image .greyscale() .writeAsync('black-white.jpg'); }) .catch(err => console.error(err));


3. gm (GraphicsMagick) — un outil puissant pour les tâches complexes



La bibliothèque gm est une enveloppe pour les utilitaires système GraphicsMagick ou ImageMagick. Elle offre des possibilités de traitement d'images quasi illimitées, mais nécessite l'installation du logiciel correspondant sur le serveur.



Installation

npm install gm

Il est également nécessaire d'installer GraphicsMagick ou ImageMagick sur le système (par exemple, via apt-get, brew ou l'installateur Windows).



Principales fonctionnalités

  • Prise en charge de tous les formats d'images
  • Superposition complexe de couches et de masques
  • Correction avancée des couleurs
  • Traitement par lots


Exemple : ajout d'un filigrane

const gm = require('gm');

gm('input.jpg')

Recommendations