玩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,,function(err){
                if (err) throw err;
                callback && callback(url,dest);
            });
        }
    });
}
function encoderImage(sourceImg,destImg){
    images(sourceImg)     //加载图像文件
        .size()          //等比缩放图像到1000像素宽
        .draw(images("pficon.jpg"),,)   //在(10,10)处绘制Logo
        .save(destImg,{
            quality :      //保存图片到文件,图片质量为50
        });
}
readFile("./src","./out");
module.exports = readFile;
玩node-images模块---Node.js轻量级跨平台图像编解码库的更多相关文章
- 【听如子说】-python模块系列-AIS编解码Pyais
		Pyais Module Introduce pyais一个简单实用的ais编解码模块 工作中需要和ais打交道,在摸鱼的过程中发现了一个牛逼的模块,对ais编解码感兴趣的可以拿项目学习一下,或者运用 ... 
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
		一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ... 
- node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
		第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ... 
- 利用Node.js编写跨平台的spawn语句
		node const child = cp.spawn('npm', ['run', 'build']); 报错 events.js:182 throw er; // Unhandled 'error ... 
- 深入浅出node(2) 模块机制
		这部分主要总结深入浅出Node.js的第二章 一)CommonJs 1.1CommonJs模块定义 二)Node的模块实现 2.1模块分类 2.2 路径分析和文件定位 2.2.1 路径分析 2.2.2 ... 
- node.js--HTTP模块
		HTTP模块 node.js提供了一个创建自己服务器的方式,用起来很简单,首先引用http模块 //引用HTTP模板 var http = require('http'); 创建服务实例:http.c ... 
- node基础—模块系统
		模块的概念 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块加载系统. 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块),换言之,一个 Node ... 
- node的模块管理
		/* *一:从node_modules目录中加载模块; * 向这样的写法: * require("aa.js") * 则node将aa.js文件视为node_modules目录下的 ... 
- 简单了解 node net 模块
		简单了解 node net 模块 文章记录了对net 模块的简单理解分析. net模块 简单使用 net.Server 类 net.Socket 类 总结 1.1 net模块 Node.js 的 Ne ... 
随机推荐
- Robot Framework分层、开发系统关键字
			开发系统关键字:http://www.cnblogs.com/fnng/p/4261293.html http://www.cnblogs.com/fnng/p/3969978.htm ... 
- 【git】git pull
			http://www.01happy.com/git-resolve-conflicts/ 
- Unity接第三方SDK时遇到的坑
			1.大部分SDK的方法需要在线程中执行,一般会放在主线程里执行,安卓中主线程一般用于UI渲染. this.runOnUiThread(new Runnable() { @Override public ... 
- Linux下安装或升级Python 2.7
			1.准备编译环境gcc 2.去官网下载要安装的对应版本的python的源代码 下载地址:https://www.python.org/downloads/source/ 你可以选择你要下载的版本,用w ... 
- ubuntu alsa2
			ALSA是Advanced Linux Sound Architecture简称.它包含一组kernel 驱动,一个应用编程接口(API)库以及一组工具函数.本文中,我们会向读者展示ALSA项目和组成 ... 
- 配置ORACLE 11g绿色版客户端和PLSQL远程连接环境
			配置ORACLE 11g绿色版客户端和PLSQL环境 本方法是通过使用ORACLE官方提供的精简版客户端,即绿色免安装的客户端. Instant client的版本很多:主要是Basic和Ba ... 
- js实现webSocket客户端
			var ws = new WebSocket("ws://localhost:8080/msg"); //readyState属性返回实例对象的当前状态,共有四种. //CONNE ... 
- MySQL------报错Access denied for user 'root'@'localhost' (using password:NO)解决方法
			报错:Access denied for user 'root'@'localhost' (using password:NO) 原因:没有给用户“root'@'localhost”赋予数据库权限 解 ... 
- IOS指纹识别调用
			最近正在开发的一个app需要加入指纹识别的功能,先搜索一下找到官方文档,简单易懂: https://developer.apple.com/library/ios/documentation/Loca ... 
- 【web端权限维持】利用ADS隐藏webshell
			0X01 前言 未知攻,焉知防,在web端如何做手脚维护自己拿到的权限呢?首先要面临的是webshell查杀,那么通过利用ADS隐藏webshell,不失为一个好办法. 0X02 利用ADS隐藏web ... 
