node.js gm是什么

1. node.js gm是什么?

Node.js是一个非阻塞的后端开发语言,生态上非常活跃,社区中有很多优秀的第三方库,gm就是其中的一款,它是一个用于处理图像的Node.js模块,可以实现对图像进行剪裁、旋转、缩放、颜色处理等多种操作,使人们可以在Node.js环境下对图像进行处理操作,它的全称是 GraphicsMagick for node.js 。

GraphicsMagick是一款开源的图像处理工具,它支持100多种图像格式,并可以使用众多的效果例如调整大小,缩小和旋转。gm的开发团队基于GraphicsMagick和ImageMagick的API开发了它,并与Node.js集成在一起,它的使用方法非常类似于ImageMagick。

2. 安装

安装前需要保证当前系统上已经安装了GraphicsMagick和ImageMagick。如果没有安装这两者,将会给安装gm造成困难。如果在Windows平台下,请先安装Chocolatey后,再通过Chocolatey安装GraphicsMagick和ImageMagick,当然,也可以直接到官网中下载相对应的安装文件。

如果已经安装了GraphicsMagick和ImageMagick,可以通过npm安装gm:

npm install gm

3. gm的基本使用

3.1 图像处理的基础操作

gm的API中提供的方法种类非常多,但是基本上只要熟练掌握了以下几个方法就可以完成图像处理的大部分需求。可以使用rotate,resize,crop等方法来处理图片。

let gm = require('gm')

// resize

gm('input.jpg')

.resize(500, 500)

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

// crop

gm('input.jpg')

.crop(200, 200, 100, 100)

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

// rotate

gm('input.jpg')

.rotate('green', 45)

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

3.2 颜色处理

可以通过modulate,negate等方法使图片变成灰度,增加、减少亮度等颜色处理的方法。

// modulate

gm('input.jpg')

.modulate(120)

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

// negate

gm('input.jpg')

.negate()

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

// brightness

gm('input.jpg')

.brightness(80)

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

3.3 图像过滤

使用autoOrient,charcoal等方法对图片的过滤效果。autoOrient方法可以让图片根据方向来进行自动旋转,而charcoal则是将图片变成类似炭笔效果的图像。

// autoOrient

gm('input.jpg')

.autoOrient()

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

// charcoal

gm('input.jpg')

.charcoal()

.write('output.jpg', function (err) {

if (!err) console.log('done')

})

4. 总结

通过gm,我们可以对图像进行多种操作,例如剪裁、旋转、缩放、颜色处理等等。这些方法在我们的应用程序中使用,可以让我们的图片更加美观,更有吸引力。在Node.js和GraphicsMagick的配合下,处理图片变得非常容易,并且在网站开发中非常实用。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。