Node.js轻量级跨平台图像编解码库
github:https://github.com/zhangyuanwei/node-images
Features 功能特性
- 轻量级:无需安装任何图像处理库。
- 跨平台:Windows下发布了编译好的.node文件,下载就能用。
- 方便用:jQuery风格的API,简单可依赖。
我们可以通过这个插件做什么呢,常见的可以加水印,简单的放大缩小压缩处理等。
实例:
//编码图片依赖模块https://github.com/zhangyuanwei/node-images var images = require("images"); var fs = require("fs"); var path = require("path"); function readFile(src,dst){ //判断文件需要时间,则必须同步 if(fs.existsSync(src)){ //读取文件夹 fs.readdir(src,function(err,files){ if(err){ throw err; } files.forEach(function(filePath){ console.log(dst); //url+"/"+filename不能用/直接连接,Unix系统是”/“,Windows系统是”“ var url = path.join(src,filePath), dest = path.join(dst,filePath); fs.stat(url,function(err,stats){ if(err)throw err; //是文件 if(stats.isFile()){ //正则判定是图片 if(/.*.(jpg|png|gif)$/i.test(url)){ encoderImage(url,dest); } }else if(stats.isDirectory()){ exists(url,dest,readFile); } }) }); }); }else{ throw "no files,no such!" } } //这里处理文件跟复制有点相关,输出要检测文件是否存在,不存在要新建文件 function exists(url,dest,callback){ fs.exists(dest,function(exists){ if(exists){ callback && callback(url,dest); }else{ //第二个参数目录权限 ,默认0777(读写权限) fs.mkdir(dest,0777,function(err){ if (err) throw err; callback && callback(url,dest); }); } }); } function encoderImage(sourceImg,destImg){ images(sourceImg) //加载图像文件 .size(1000) //等比缩放图像到1000像素宽 .draw(images("pficon.jpg"),10,10) //在(10,10)处绘制Logo .save(destImg,{ quality : 50 //保存图片到文件,图片质量为50 }); } readFile("./src","./out"); module.exports = readFile;