Maison > interface Web > js tutoriel > le corps du texte

Parlons de la façon dont Nodejs utilise gm et imageMagick pour traiter les images

青灯夜游
Libérer: 2022-08-15 19:42:38
avant
2831 Les gens l'ont consulté

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 !

Parlons de la façon dont Nodejs utilise gm et imageMagick pour traiter les images

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.

Dépendances d'installation

npm i gm
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

引用gm

一开始我选择了安装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');
  }
});
Copier après la connexion

如果要用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');
  }
});
Copier après la connexion

其它功能

记录一下gm的常用功能,供大家备忘:

注意:gm是可以链式调用的,写起来很爽,从gm(filename)读取图片文件,一层一层处理,最后写入文件.write(filename, callback)。

缩放图片

.resize(width, height)

裁剪图片

.crop(width, height, x, y)

旋转图片

.rotate(color, deg)

Il est plus pratique d'utiliser Brew. Vous n'avez pas à vous soucier des variables d'environnement.

GraphicsMagick

🎜🎜Bien sûr, si vous n'utilisez pas ImageMagick, vous pouvez utiliser GraphicsMagick :🎜rrreee🎜🎜Quote gm🎜🎜🎜Au début, j'ai choisi d'installer ImageMagick Quand j'écris ceci, je reçois toujours. une erreur :🎜rrreee 🎜Si vous souhaitez utiliser ImageMagick, l'écriture ci-dessus est en fait fausse. Elle devrait être écrite comme ceci, en précisant clairement que je souhaite utiliser l'outil 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!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal