Node.js 的图片处理模块 images 跨平台图像编解码库

最终我选择使用了 sharp https://github.com/lovell/sharp


基本用法:

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, with the quality of 50
    quality : 50          //保存图片到文件,图片质量为50
  });


Features 功能特性

轻量级:无需安装任何图像处理库。

跨平台:Windows下发布了编译好的.node文件,下载就能用。

方便用:jQuery风格的API,简单可依赖。


安装

$ npm install images


API 接口

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


images(file)

从指定文件加载并解码图像


images(width, height)

创建一个指定宽高的透明图像


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

从Buffer数据中解码图像


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

从另一个图像中复制区域来创建图像


images(file)

从指定文件加载并解码图像


images(width, height)

创建一个指定宽高的透明图像


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

从Buffer数据中解码图像


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

从另一个图像中复制区域来创建图像


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

以指定颜色填充图像

eg:images(200, 100).fill(0xff, 0x00, 0x00, 0.5) Fill image with color


.draw(image, x, y)

在当前图像( x , y )上绘制 image 图像


.encode(type[, config])

以指定格式编码当前图像到Buffer,config为图片设置,目前支持设置JPG图像质量,返回填充好的Buffer,该操作将会切断调用链。


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

eg:images("input.png").encode("output.jpg", {operation:50})

编码并保存当前图像到 file ,如果type未指定,则根据 file 自动判断文件类型,config为图片设置,目前支持设置JPG图像质量


.size([width[, height]])

获取或者设置图像宽高,如果height未指定,则根据当前宽高等比缩放


.resize(width[, height])

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


.width([width])

获取或设置图像宽度


.height([height])

获取或设置图像高度


images.setLimit(width, height)

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


images.setGCThreshold(value)

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


images.getUsedMemory()

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


images.gc()

强制调用V8的垃圾回收机制


参考:

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

修改时间 2021-01-15

真诚赞赏,手留余香
赞赏
随机推荐
axios发送post请求,nodejs无法正常获取
photoshop 数位板 两小时练习
解决jquery mobile的header和footer在点击屏幕的时候消失的办法
Node.js 数据验证器 validator.js 类似Laravel和ThinkPHP
Wordpress 使用 tag 标签获取文章列表的方法
Wordpress 学习笔记 2 插件编写
Javascript和jQuery获取checkbox的值
macOS卸载Android Studio
JavaScript 代码保护技术 混淆和加密
CSS 实现三角形