node.js实现图片裁剪+获取图片大小+加logo水印

1、在webstorm中装npm install images插件

 代码如下:     

var fs = require("fs");
var images=require('images');
router.get('/zipFile',function (req,res,next) {
    var lastPut='222.jpg';//生成的图片
    var sourcePic="../public/images/jietu.png";//原图片
    var watermark="../public/defaultPicture/defaultMan.jpg";//logo水印
    var x=images(sourcePic).width()-images(watermark).width();//sourcePic.width-watermark.width
    var y=images(sourcePic).height()-images(watermark).height();//sourcePic.height-watermark.height
    images(sourcePic)
    //加载图像文件
        .size(1000,1000)//等比缩放图像到width像素宽,默认以宽度来压缩的。
        .draw(images(watermark),x,y)     //在(x,y)处绘制watermark水印,右下角绘制logo
        .save(lastPut, {
quality: 50 //保存图片到文件,图片质量为50
});
var
staSync = fs.statSync( lastPut).size; //生成的图片的大小
});

相关资料:https://github.com/zhangyuanwei/node-images
http://nodejs.cn/api/fs

以上是使用images插件


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


使用:sharp插件速度相对来说比gmimages块,失贞程度也比较低。

npm install sharp --save


var sharp=require('sharp');

sharp(__dirname+'/../public/temp/333.jpg')
   .overlayWith(__dirname+'/../public/temp/shuiyin.png',{gravity:sharp.gravity.southeast}
)//加水印
.resize(null, 1280)//按照height去压缩
.toFile( __dirname+ '/../public/temp/qqq1.jpg', function (error) { console. log(error); console. log( typeOptions. isEmpty(error)); if( typeOptions. isEmpty(error)){ //不报错。 console. log( "不报错。"); sharp. cache( false); //清除占用资源 } else{ console. log( "报错。"); }});sharp总比来说比其他插件好用。sharp项目主页:https://github.com/lovell/sharpsharp项目中有源码,可以根据源码中的demo去写自己的模块。

你可能感兴趣的:(node.js实现图片裁剪+获取图片大小+加logo水印)