zoukankan      html  css  js  c++  java
  • 玩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;
        
        
  • 相关阅读:
    48、Windows驱动程序模型笔记(六),同步
    44、Windows驱动程序模型笔记(二)
    JavaP:对象创建
    JavaP:继承和多态【只有提纲】
    ASP.NET MVC:一个简单MVC示例
    JavaP: 2、类和对象
    ASP.NET MVC:解析 MVC+ADO.NET Entity(实体类)
    Oracle: 一、Oracle简介,安装,基本使用,建表增删改查,数据类型及常用命令
    JavaP:面向对象编程
    ASP.NET: PagedDataSource
  • 原文地址:https://www.cnblogs.com/pingfan1990/p/4828072.html
Copyright © 2011-2022 走看看