最终我选择使用了 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