NodejsComment traiter les images ? L'article suivant vous présentera comment Nodejs utilise gm et imageMagick pour traiter les images. J'espère qu'il vous sera utile !
Récemment, j'utilise JS pour faire des choses amusantes et j'ai besoin de traiter des images. Il existe de nombreux didacticiels 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 Node qui fournit certaines API JS afin que les développeurs puissent traiter des images. Mais il s'appuie sur GraphicsMagick, ou sur ImageMagick. En fait, gm est la ligne de commande qui appelle ces deux outils.
En d'autres termes, en plus d'installer gm, nous devons également installer GraphicsMagick ou ImageMagick.
ImageMagick
L'auteur vient de MacOS et a directement choisi d'installer ImageMagick.
Suivez la commande du site officiel, qui ne nécessite qu'1 ligne de code (à condition d'avoir installé Brew sur votre Mac) :
brew install imagemagick --with-webp
Introduisez le paramètre --with-webp
, vous pouvez le supprimer, Mais si vous souhaitez traiter des images au format webp, vous devez l'ajouter. --with-webp
,你是可以删掉的,但如果你希望处理webp格式的图片,一定要加上。
用brew比较方便,自己不用操心环境变量了。
GraphicsMagick
当然,如果你不用ImageMagick,想用GraphicsMagick也是完全可以的:
brew install graphicsmagick
一开始我选择了安装ImageMagick,这么写,总是报错:
const gm = require('gm'); gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) { if (err) { return console.log(err); } else { console.log('success'); } });
如果要用ImageMagick,上面写法其实是不对的,应该这样写,明确指定我要用ImageMagick
工具:
const g = require('gm'); const gm = g.subClass({imageMagick: true}); gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) { if (err) { return console.log(err); } else { console.log('success'); } });
记录一下gm的常用功能,供大家备忘:
注意:gm是可以链式调用的,写起来很爽,从gm(filename)读取图片文件,一层一层处理,最后写入文件.write(filename, callback)。
缩放图片
.resize(width, height)
裁剪图片
.crop(width, height, x, y)
旋转图片
.rotate(color, deg)
ImageMagick
: 🎜rrreee🎜🎜Autre. fonctions🎜🎜🎜Enregistrez les fonctions communes de gm pour tout le monde Mémo : 🎜🎜🎜Remarque : gm peut être appelé dans une chaîne, ce qui est très amusant à écrire. Il lit les fichiers image de gm(nom de fichier), les traite couche par couche, et enfin écrit dans le fichier.write(filename, callback). 🎜🎜🎜🎜🎜Zoomer l'image🎜🎜🎜🎜.resize(largeur, hauteur)
🎜🎜🎜🎜Recadrer l'image🎜🎜🎜🎜.crop(largeur, hauteur, x, y )🎜🎜🎜🎜Faire pivoter l'image🎜🎜🎜🎜<code>.rotate(color, deg)
🎜🎜color est la couleur d'arrière-plan (la couleur d'arrière-plan est pratique si l'angle de rotation en degrés est pas un multiple de 90, utilisez simplement le format '#ededed')🎜🎜Pour plus de connaissances sur les nœuds, veuillez visiter : 🎜tutoriel nodejs🎜 ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!