web-dev-qa-db-fra.com

Compressez l'image en utilisant Sharp dans node.js

Je souhaite redimensionner et compresser des images à l'aide de sharp dans node.js

En forte pour jpeg il y a une compression séparée et pour webp il y a séparée et pour png il y a séparée.

WEBP

sharp('a.jpg')
.resize(1000)
.webp({quality: 80})

JPEG

sharp('_4_.jpg')
 .resize(1000)
 .jpeg({quality: 80})

PNG

sharp('_4_.jpg')
 .resize(1000)
 .png({compressionLevel: 8})

Fondamentalement, je veux compresser et redimensionner l'image sans vérifier dans quel format ils.

Y a-t-il quelque chose pour cela dans sharp?

8
Haseeb Ahmad

Si vous voulez que le format de sortie corresponde au format d'entrée, vous devriez regarder l'option force.

sharp(input)
  .jpeg({ progressive: true, force: false })
  .png({ progressive: true, force: false })
  ...

La sortie GIF n'est pas prise en charge, donc l'entrée GIF deviendra la sortie PNG par défaut.

Référence supplémentaire: https://sharp.readthedocs.io/en/v0.17.0/api-output/#jpeg

2
sbay