玩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 ...
随机推荐
- centos 离线安装Ambari
1.首先要下载它们的安装包,别尝试着在yum来下,特别慢,最好的方式是通过建立本地资源的方式来安装. http://public-repo-1.hortonworks.com/HDP/centos6/ ...
- Unity用代码实现Remove Missing Script
[MenuItem("Edit/Cleanup Missing Scripts")] static void CleanupMissingScripts () { ; i < ...
- MySQL 字符串拼接详解
在Mysql 数据库中存在两种字符串连接操作.具体操作如下一. 语法: 1. CONCAT(string1,string2,…) 说明 : string1,string2代表字符串,conca ...
- Linux+Redis实战教程_Linux上安装jdk,mysql,tomcat_安装jdk
1. Linux上安装jdk,mysql,tomcat[重点] Windows 控制面板 添加/卸载程序 进行程序的安装.更新.卸载.查看 rpm命令:相当于windows的添加/卸载程序 进行程序的 ...
- PHP 源码加密模块 php-beast
PHP Beast是一个源码加密模块,使用这个模块可以把PHP源码加密并在此模块下运行. 为什么要用PHP-Beast? 有时候我们的代码会放到代理商上, 所以很有可能代码被盗取, 或者我们写了一个商 ...
- C#反射基础理解1(转)
反射提供了封装程序集.模块和类型的对象(Type类型) 可以使用反射动态的创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后,可以调用类型的方法或访问其字段和属性 . 总之,有了反射, ...
- ios开发之--armv7,armv7s,arm64,i386,x86_64详解
有时候在运行的时候,经常出现诸如i386的错误,最新一些可能会出现 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch ...
- mysql中concat 和 group_concat()的用法
一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...
- 敏感词过滤和XML的创建
今天我慢下来啦,因为这三天没有新的课程学习内容,自己仅仅看啦一些,这让我停下来栖息片刻:说说现在的生活,简单的进行着,每天要奔波着去上课,然后回来,每天都在想怎样学习这个小知识点,大脑也在想怎样解决程 ...
- 转:桩模块 stub 和驱动模块 driver
迷惑我很久的stub的概念,今天终于看到觉得靠谱的了,原文地址:http://xyzhaoangela.blog.hexun.com/14208786_d.html 桩模块stub:集成测试前要为被测 ...