gm es un complemento de procesamiento de imágenes basado en node.js. Encapsula las herramientas de procesamiento de imágenes GraphicsMagick (GM) e ImageMagick (IM) y se puede llamar mediante spawn. El complemento gm no está instalado de forma predeterminada en node. Debe ejecutar "npm install gm -S" para instalarlo antes de poder usarlo.

El entorno operativo de este tutorial: sistema Windows 7, nodejs versión 16, computadora DELL G3.
¿Qué es gm,
un complemento para las herramientas de procesamiento de imágenes de Nodejs? gm, que encapsula GraphicsMagick (GM) e ImageMagick (IM), que se llama mediante spawn.
UtiliceGraphicsMagick (GM) o ImageMagick (IM) son dos herramientas de procesamiento de imágenes de uso común con básicamente las mismas funciones. GM es una rama de IM.
el software de preinstalación
de la herramienta de procesamiento de imágenes nodejs gm
parainstalar GraphicsMagick o ImageMagick
(el software de mensajería instantánea compatible con el complemento gm es la versión imagemagickv7.0.X.XX. Si la versión de mensajería instantánea descargada es 7.1.x, la herramienta de procesamiento de imágenes gm la llamada no se realizará correctamente. Actualmente, es oficial. La versión proporcionada es 7.1.x), la dirección de descarga de 7.0.x es http://m.downcc.com/d/398765.
Durante la instalación, debe seleccionar la parte del marco de la imagen al instalar ImageMagick (el complemento gm llama al comando convertir)

Instalar gm
npm install gm -S
Agregar marca de agua
El uso de gm se usa principalmente para agregar marcas de agua, porque el módulo de imagen que viene con nodejs puede satisfacer la mayoría de las necesidades, pero no puede agregar marcas de agua, por lo que el siguiente método usa gm para agregar marcas de agua.
Cargue el módulo gm
const gm = require('gm').subClass({imageMagick: true}) Especifique la imagen para agregar texto
gm(./uploads/pic/test.jpg) //Especifique la imagen para agregar watermark.stroke ("blanco") //Color de fuente exterior.fill("blanco") //Color de fuente interior (el valor predeterminado es negro si no está configurado)
.drawText(50,50,"China")
.write(./uploads/pic/watermark.jpg, función (err) {
consola.log(err)
si (!err) console.log('ok');
de lo contrario console.log(err);
}); 
Agregue font.font chino
("./ttf/msyh.ttf",60) //La carpeta donde se encuentra la fuente y el tamaño de fuente gm(./uploads/pic/test.jpg) //Especifique la imagen para agregar the watermark.stroke(" white") //Color de fuente exterior.fill("white") //Color de fuente interior (el valor predeterminado es negro si no está configurado)
.font("./ttf/msyh.ttf",60) //La carpeta donde se encuentra la biblioteca de fuentes y el tamaño de fuente.drawText(50,50,"中文China")
.write(./uploads/pic/watermark.jpg, función (err) {
consola.log(err)
si (!err) console.log('ok');
de lo contrario console.log(err);
}); 
Agregue una marca de agua de fecha
para descargar el módulo de momento
npm install moment
load module
const moment = require('moment' call call
var datetime = moment().format("AAAA-MM-DD HH:mm:ss");
gm(./uploads/pic/test.jpg) //Especifique la imagen para agregar watermark.stroke("white") //Color de fuente exterior.fill("white") //Color de fuente interior (el valor predeterminado es negro si no colocar) )
.font("./ttf/msyh.ttf",60) //La carpeta donde se encuentra la biblioteca de fuentes y el tamaño de fuente.drawText(50,50,datetime)
.write(./uploads/pic/watermark.jpg, función (err) {
consola.log(err)
si (!err) console.log('ok');
de lo contrario console.log(err);
}); 