nodejs处理图片的中间件node-images详解


Posted in NodeJs onMay 08, 2017

Cross-platform image decoder(png/jpeg/gif) and encoder(png/jpeg) for Node.js

node.js轻量级跨平台图像编解码库

var images = require("images");

images("input.jpg")           //Load image from file 
                    //加载图像文件
  .size(400)             //Geometric scaling the image to 400 pixels width
                    //等比缩放图像到400像素宽
  .draw(images("logo.png"), 10, 10)  //Drawn logo at coordinates (10,10)
                    //在(10,10)处绘制Logo
  .save("output.jpg", {        //Save the image to a file,whih quality 50
    quality : 50          //保存图片到文件,图片质量为50
  });

Features 功能特性

  1. Lightweight:no need to install any image processing library.
  2. 轻量级:无需安装任何图像处理库。
  3. Cross-platform: Released a compiled .node file on windows, just download and start.
  4. 跨平台:Windows下发布了编译好的.node文件,下载就能用。
  5. Easy-to-use: Provide jQuery-like chaining API.Simple and reliable!
  6. 方便用:jQuery风格的API,简单可依赖。

Installation 安装

$ npm install images

API 接口

node-images provide jQuery-like Chaining API,You can start the chain like this:

node-images 提供了类似jQuery的链式调用API,您可以这样开始:

/* Load and decode image from file */
/* 从指定文件加载并解码图像 */
images(file)

/* Create a new transparent image */
/* 创建一个指定宽高的透明图像 */
images(width, height)

/* Load and decode image from a buffer */
/* 从Buffer数据中解码图像 */
images(buffer[, start[, end]])

/* Copy from another image */
/* 从另一个图像中复制区域来创建图像 */
images(image[, x, y, width, height])

images(file)

Load and decode image from file从指定文件加载并解码图像

images(width, height)

Create a new transparent image创建一个指定宽高的透明图像

images(buffer[, start[, end]])

Load and decode image from a buffer从Buffer数据中解码图像

images(image[, x, y, width, height])

Copy from another image从另一个图像中复制区域来创建图像

.fill(red, green, blue[, alpha])

eg:images(200, 100).fill(0xff, 0x00, 0x00, 0.5) Fill image with color以指定颜色填充图像

.draw(image, x, y)

Draw image on the current image position( x , y )在当前图像( x , y )上绘制 image 图像

.encode(type[, config])

eg:images("input.png").encode("jpg", {operation:50}) Encode image to buffer, config is image setting.

以指定格式编码当前图像到Buffer,config为图片设置,目前支持设置JPG图像质量

Return buffer

返回填充好的Buffer

Note:The operation will cut off the chain

注意:该操作将会切断调用链

See:.save(file[, type[, config]]) 参考:.save(file[, type[, config]])

.save(file[, type[, config]])

eg:images("input.png").encode("output.jpg", {operation:50}) Encoding and save the current image to a file, if the type is not specified, type well be automatically determined according to the file, config is image setting. eg: { operation:50 }
编码并保存当前图像到 file ,如果type未指定,则根据 file 自动判断文件类型,config为图片设置,目前支持设置JPG图像质量

.size([width[, height]])

Get size of the image or set the size of the image,if the height is not specified, then scaling based on the current width and height获取或者设置图像宽高,如果height未指定,则根据当前宽高等比缩放

.resize(width[, height])

Set the size of the image,if the height is not specified, then scaling based on the current width and height

设置图像宽高,如果height未指定,则根据当前宽高等比缩放, 默认采用 bicubic 算法。

.width([width])

Get width for the image or set width of the image获取或设置图像宽度

.height([height])

Get height for the image or set height of the image获取或设置图像高度

images.setLimit(width, height)

Set the limit size of each image  设置库处理图片的大小限制,设置后对所有新的操作生效(如果超限则抛出异常)

images.setGCThreshold(value)

Set the garbage collection threshold   设置图像处理库自动gc的阈值(当新增内存使用超过该阈值时,执行垃圾回收)

images.getUsedMemory()

Get used memory (in bytes)得到图像处理库占用的内存大小(单位为字节)

images.gc()

Forced call garbage collection 强制调用V8的垃圾回收机制

https://github.com/zhangyuanwei/node-images

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
浅谈使用nodejs搭建web服务器的过程
Jul 20 NodeJs
在nodejs中创建child process的方法
Jan 26 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 #NodeJs
win系统下nodejs环境安装配置
May 04 #NodeJs
Nodejs--post的公式详解
Apr 29 #NodeJs
NodeJs的fs读写删除移动监听
Apr 28 #NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 #NodeJs
NodeJs模拟登陆正方教务
Apr 28 #NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 #NodeJs
You might like
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
PHP队列用法实例
2014/11/05 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
怎样使用Python脚本日志功能
2016/08/14 Python
python自动化生成IOS的图标
2018/11/13 Python
Python元组常见操作示例
2019/02/19 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
公司领导推荐信
2013/11/12 职场文书
工作失职检讨书范文
2014/01/16 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
联谊会主持词
2014/03/26 职场文书
2014年材料员工作总结
2014/11/19 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android