NPM-gm强大的图像处理工具

引入fs 、gm模块 npm install gm

1
2
var fs = require('fs');
var gm = require('gm');

压缩图片

1
2
3
4
5
6
7
8
gm('./yuan.jpg')
.resize(240, 240, '!')
.noProfile()
.write('./xian.jpg', function (err) {
if (err) {
console.log(err);
}
});

裁切图片

1
2
3
4
5
6
gm("./yuan.jpg")
//裁剪参数(w,h,x,y)
.crop(800,200,100,100)
.write("./xian1.jpg",function(err){
if(!err) console.log("done")
})

水印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
如果没有gravity参数,那么就将text绘制到图片中的(x,y)坐标处。
如果带有gravity参数,从(x,y)坐标开始到右下角构成的图片范围内,依据gravity含义绘制文字。
gravity选项如下:NorthWest, North, NorthEast, West, Center,East, SouthWest, South, or SouthEast
值得注意的是,在带有gravity的情形下,(x,y)坐标能起到对位置的调整作用,而且还可以取负值
.drawText(100, 100, 'Hello') //绘制到(100,100)位置处
.drawText(0, 0, 'Hello', 'Center'); //绘制到图片正中间
.drawText(0, 10, 'Hello', 'Center'); //图片上面裁除10px,剩下部分的中心。等同于原图中心往下5px
.drawText(0, -10, 'Hello', 'Center'); //同上,等同于原图中心往上5px
.drawText(0, 0, 'Hello', 'NorthEast'); //原图右上角
*/
gm("./yuan.jpg")
.crop(800,200,100,100)
.font("./Arvo-Regular.ttf")//字体
.fill('#ff3b2d')//设置颜色
.drawText(50,50,"960")//给图片添加文字的接口drawTex
.fontSize('40px')//字体大小
.write("./xian2.jpg",function(err){
if(!err) console.log("done")
else console.log(err)
})
//有一个问题 就是写中文的时候会有乱码 到底是哪里的问题

说明

可以把gif的每一帧图片进行读取,用gm进行处理好进行拼接,就可以处理加上水印或者其他方式的新gif,具体代码暂不贴出。有意者请与我邮箱留言,我们可以一起讨论。

  • 版权声明: 本博客所有文章,未经许可,任何单位及个人不得做营利性使用!转载请标明出处!如有侵权请联系作者。
  • Copyrights © 2015-2023 翟天野

请我喝杯咖啡吧~