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;