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轻量级跨平台图像编解码库的更多相关文章

  1. 【听如子说】-python模块系列-AIS编解码Pyais

    Pyais Module Introduce pyais一个简单实用的ais编解码模块 工作中需要和ais打交道,在摸鱼的过程中发现了一个牛逼的模块,对ais编解码感兴趣的可以拿项目学习一下,或者运用 ...

  2. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  3. node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)

    第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  4. 利用Node.js编写跨平台的spawn语句

    node const child = cp.spawn('npm', ['run', 'build']); 报错 events.js:182 throw er; // Unhandled 'error ...

  5. 深入浅出node(2) 模块机制

    这部分主要总结深入浅出Node.js的第二章 一)CommonJs 1.1CommonJs模块定义 二)Node的模块实现 2.1模块分类 2.2 路径分析和文件定位 2.2.1 路径分析 2.2.2 ...

  6. node.js--HTTP模块

    HTTP模块 node.js提供了一个创建自己服务器的方式,用起来很简单,首先引用http模块 //引用HTTP模板 var http = require('http'); 创建服务实例:http.c ...

  7. node基础—模块系统

    模块的概念 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块加载系统. 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块),换言之,一个 Node ...

  8. node的模块管理

    /* *一:从node_modules目录中加载模块; * 向这样的写法: * require("aa.js") * 则node将aa.js文件视为node_modules目录下的 ...

  9. 简单了解 node net 模块

    简单了解 node net 模块 文章记录了对net 模块的简单理解分析. net模块 简单使用 net.Server 类 net.Socket 类 总结 1.1 net模块 Node.js 的 Ne ...

随机推荐

  1. git远端删除被提交后又被加到.gitignore的文件

    远端删除文件而不影响本地文件 git rm [-r] --cached file_or_dir_name 利用.gitignore来自动删除所有匹配文件 我试过网上推荐的写法 git rm --cac ...

  2. 【DL】物体识别与定位

    https://cloud.tencent.com/community/article/414833

  3. greenplum日常维护手册

    1.       数据库启动:gpstart 常用可选参数: -a : 直接启动,不提示终端用户输入确认 -m:只启动master 实例,主要在故障处理时使用 2.       数据库停止:gpsto ...

  4. 比SRCNN效果好的传统超分辨率算法汇总

    1.基于深度协作表达的人脸图像超分辨率算法研究与应用_百度学术 采用一种深度协作表达算法框架,构造深度的多线性模型 分段拟合高低分辨率图像块之间的非线性关系,本文算法简洁高效,提供了一种新的深度学习模 ...

  5. 关于测试中哪些信息需要放到jira上面

    1.每个新需求的功能点,全部在jira上一一呈现 2.每个bug也一样在jira上一一呈现 3.任务一个需要优化改进的点也一一在jira上呈现 然后程序员一直开发新功能和修改新bug,测试人员负责bu ...

  6. golang-defer坑的本质

    https://blog.csdn.net/hittata/article/details/77836435

  7. [原]unity3d刀光剑影(二)

    本篇研究 暴走武侠 效果.直接贴代码 Shader "Cg shader with single texture" { Properties { _MainTex ("T ...

  8. SVN的Hooks功能--强制添加注释

    所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本 ...

  9. 在 Linux 使用 GCC 编译C语言共享库

    对任何程序员来说库都是必不可少的.所谓的库是指已经编译好的供你使用的代码.它们常常提供一些通用功能,例如链表和二叉树可以用来保存任何数据,或者是一个特定的功能例如一个数据库服务器的接口,就像MySQL ...

  10. SQL SERVER数据库新认识的一些基础知识

    最近要接触sql server的存储过程啦,在处理更加复杂的逻辑过程前,就来看一下这些sql的基础语法,感觉看啦一些复杂一点的sql语句,突然发现我是有多么的薄弱啊,所以在一些基础的语法上面我再重新整 ...