引入fs 、gm模块
npm install gm
var fs = require('fs');
var gm = require('gm');
压缩图片
gm('./yuan.jpg')
.resize(240, 240, '!')
.noProfile()
.write('./xian.jpg', function (err) {
if (err) {
console.log(err);
}
});
裁切图片
gm("./yuan.jpg")
//裁剪参数(w,h,x,y)
.crop(800,200,100,100)
.write("./xian1.jpg",function(err){
if(!err) console.log("done")
})
水印
/*
如果没有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)
})
//有一个问题 就是写中文的时候会有乱码 到底是哪里的问题