Récemment, j'utilise JS pour faire des choses amusantes et j'ai besoin de traiter des images. Il existe de nombreux tutoriels sur Internet proposant différentes méthodes, et certaines méthodes ne fonctionnent pas nécessairement. Cet article partagera avec vous une méthode vérifiée par l'auteur pour utiliser NodeJS pour traiter les images.
npm i gm
gm est une bibliothèque de nœuds qui fournit certaines API JS afin que les développeurs puissent traiter les images. Mais il repose sur GraphicsMagick ou ImageMagick en dessous. En fait, gm est la ligne de commande permettant d'appeler ces deux outils.
En d’autres termes, en plus d’installer gm, nous devons également installer GraphicsMagick ou ImageMagick.
ImageMagickL'auteur est sous MacOS et a directement choisi d'installer ImageMagick.
Selon la commande du site officiel, une seule ligne de code est nécessaire (à condition que vous ayez installé Brew sur votre Mac) :
Brew installer imagemagick --with-webp
Permettez-moi de vous présenter le paramètre --with-webp
. Vous pouvez le supprimer, mais si vous souhaitez traiter des images au format webp, vous devez l'ajouter.
Il est plus pratique d'utiliser Brew. Vous n'avez pas à vous soucier des variables d'environnement.
GraphiquesMagick
Bien sûr, si vous n'utilisez pas ImageMagick, vous pouvez utiliser GraphicsMagick :
Brew installer Graphicsmagick
Au début, j'ai choisi d'installer ImageMagick, et quand j'écrivais ceci, j'avais toujours une erreur :
const gm = require('gm'); gm('Chemin du fichier image').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('Chemin du fichier de sortie', function (err) { si (erreur) { return console.log(err); } autre { console.log('succès'); } });
Si vous souhaitez utiliser ImageMagick, la manière d'écrire ci-dessus est en fait erronée. Vous devez l'écrire comme ceci, en précisant clairement que je souhaite utiliser l'outil ImageMagick
:
const g = require('gm'); const gm = g.subClass({imageMagick : true}); gm('Chemin du fichier image').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('Chemin du fichier de sortie', function (err) { si (erreur) { return console.log(err); } autre { console.log('succès'); } });
Enregistrez les fonctions couramment utilisées de gm pour votre référence :
Remarque : gm peut être appelé dans une chaîne, et c'est très amusant à écrire. Il lit le fichier image à partir de gm (nom de fichier), le traite couche par couche et enfin l'écrit dans le fichier .write (nom de fichier, rappel).
Zoomer l'image
.resize(width, height)
Recadrer l'image
.crop(width, height, x, y)
Faire pivoter l'image
.rotate(color, deg)
color est la couleur de fond (si l'angle de rotation en degrés n'est pas un multiple de 90, la couleur de fond est pratique, utilisez simplement le format '#ededed')