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)
    })
//有一个问题 就是写中文的时候会有乱码 到底是哪里的问题
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容