Démarrage rapide
Ce guide vous aidera à démarrer rapidement avec Sharp et à apprendre les opérations de base de traitement d'image.
Utilisation de base
Importer Sharp
javascript
import sharp from 'sharp';Ou utilisez CommonJS :
javascript
const sharp = require('sharp');Lire une image
Sharp supporte plusieurs formats d'entrée :
javascript
// Lire depuis un fichier
const image = sharp('input.jpg');
// Lire depuis un Buffer
const image = sharp(buffer);
// Lire depuis un Stream
const image = sharp(stream);Opérations de base
Redimensionner
javascript
// Redimensionner aux dimensions spécifiées
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');
// Conserver le ratio d'aspect
await sharp('input.jpg')
.resize(300, null) // Largeur 300, hauteur automatique
.toFile('output.jpg');
// Utiliser différents modes d'adaptation
await sharp('input.jpg')
.resize(300, 200, {
fit: 'cover', // Recadrer pour s'adapter
position: 'center' // Recadrage centré
})
.toFile('output.jpg');Conversion de format
javascript
// Convertir en JPEG
await sharp('input.png')
.jpeg({ quality: 80 })
.toFile('output.jpg');
// Convertir en WebP
await sharp('input.jpg')
.webp({ quality: 80 })
.toFile('output.webp');
// Convertir en PNG
await sharp('input.jpg')
.png({ compressionLevel: 9 })
.toFile('output.png');Recadrage
javascript
// Recadrer une zone spécifiée
await sharp('input.jpg')
.extract({ left: 100, top: 100, width: 200, height: 200 })
.toFile('cropped.jpg');Rotation
javascript
// Rotation de 90 degrés
await sharp('input.jpg')
.rotate(90)
.toFile('rotated.jpg');Opérations avancées
Effets de filtre
javascript
// Flou
await sharp('input.jpg')
.blur(5)
.toFile('blurred.jpg');
// Netteté
await sharp('input.jpg')
.sharpen()
.toFile('sharpened.jpg');
// Niveaux de gris
await sharp('input.jpg')
.grayscale()
.toFile('grayscale.jpg');Ajustement des couleurs
javascript
// Ajuster la luminosité
await sharp('input.jpg')
.modulate({ brightness: 1.2 })
.toFile('bright.jpg');
// Ajuster le contraste
await sharp('input.jpg')
.modulate({ contrast: 1.5 })
.toFile('contrast.jpg');
// Ajuster la saturation
await sharp('input.jpg')
.modulate({ saturation: 0.8 })
.toFile('desaturated.jpg');Options de sortie
Enregistrer dans un fichier
javascript
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');Sortie vers Buffer
javascript
const buffer = await sharp('input.jpg')
.resize(300, 200)
.jpeg()
.toBuffer();Sortie vers Stream
javascript
sharp('input.jpg')
.resize(300, 200)
.jpeg()
.pipe(fs.createWriteStream('output.jpg'));Gestion des erreurs
javascript
try {
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');
} catch (error) {
console.error('Échec du traitement d'image:', error);
}Optimisation des performances
Traitement en flux
javascript
// Utiliser un flux pour traiter les gros fichiers
const pipeline = sharp()
.resize(300, 200)
.jpeg({ quality: 80 });
fs.createReadStream('large-input.jpg')
.pipe(pipeline)
.pipe(fs.createWriteStream('output.jpg'));Traitement concurrent
javascript
// Traiter plusieurs images simultanément
const promises = images.map(image =>
sharp(image)
.resize(300, 200)
.jpeg()
.toBuffer()
);
const results = await Promise.all(promises);Exemple complet
javascript
import sharp from 'sharp';
import fs from 'fs';
async function processImage() {
try {
// Créer une miniature
await sharp('input.jpg')
.resize(150, 150, { fit: 'cover' })
.jpeg({ quality: 90 })
.toFile('thumbnail.jpg');
// Créer une image de taille moyenne
await sharp('input.jpg')
.resize(800, 600, { fit: 'inside' })
.webp({ quality: 80 })
.toFile('medium.webp');
// Créer une grande image
await sharp('input.jpg')
.resize(1920, 1080, { fit: 'inside' })
.jpeg({ quality: 85 })
.toFile('large.jpg');
console.log('Traitement d'image terminé !');
} catch (error) {
console.error('Échec du traitement:', error);
}
}
processImage();Prochaines étapes
Maintenant que vous connaissez l'utilisation de base de Sharp, vous pouvez :
- Consulter la Documentation API pour connaître toutes les méthodes disponibles
- Apprendre les exemples avancés pour maîtriser plus de techniques
- Découvrir l'optimisation des performances pour améliorer l'efficacité du traitement