nodejs gm图片处理

引入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)
    })
//有一个问题 就是写中文的时候会有乱码 到底是哪里的问题

你可能感兴趣的:(nodejs gm图片处理)