玩node-images模塊---Node.js輕量級跨平台圖像編解碼庫


  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;
    
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM