Node.js图片处理工具gm用法小结
简介
GraphicsMagick (GM) 是一个命令行图象处理程序,所以需要在终端下运行,较为麻烦。而 gm 模块就是对 GraphicsMagick 程序进行封装,使其可以通过 Node.js 调用,在 Node.js 中操作图片变得异常方便。
安装
首先,需要在本地安装 GraphicsMagick 或者 ImageMagick。以 Ubuntu 为例,可通过以下命令进行安装:
sudo apt-get install graphicsmagick
接下来,使用 npm 安装 gm 模块:
npm install gm
基本用法
打开图片
打开图片需要使用 gm()
方法,该方法可以接受一张图片的路径作为参数,例如:
var gm = require('gm');
gm('/path/to/image.jpg')
调整大小
调整大小可以使用 resize()
方法,该方法接受参数为需要调整的宽度、高度、以及选项。例如:
gm('/path/to/image.jpg')
.resize(100, 100)
.write('/path/to/resize.jpg', function(err) {
if (!err) console.log('done');
});
裁剪
裁剪可以使用 crop()
方法,该方法接受参数为需要裁剪的宽度、高度、x 坐标以及 y 坐标。例如:
gm('/path/to/image.jpg')
.crop(100, 100, 0, 0)
.write('/path/to/crop.jpg', function(err) {
if (!err) console.log('done');
});
变换
变换可以使用 rotate()
方法,该方法接受参数为需要旋转的角度以及背景颜色。例如:
gm('/path/to/image.jpg')
.rotate('green', 45)
.write('/path/to/rotate.jpg', function(err) {
if (!err) console.log('done');
});
叠加
叠加可以使用 composite()
方法,该方法接受参数为需要叠加的图片路径、以及叠加的位置。例如:
gm('/path/to/image.jpg')
.composite('/path/to/overlay.png', 10, 10)
.write('/path/to/composite.jpg', function(err) {
if (!err) console.log('done');
});
保存
最后,需要使用 write()
方法来保存处理后的图片,该方法接受参数为保存路径以及回调函数。
示例
以下是两个基于 gm 的示例:
1. 图片水印
gm('/path/to/image.jpg')
.font("Helvetica.ttf", 12)
.drawText(10, 20, "Watermark")
.write('/path/to/watermark.jpg', function (err) {
if (!err) console.log('done');
});
2. 打马赛克
gm('/path/to/image.jpg')
.region(130, 165, 200, 200)
.blur(30, 5)
.write('/path/to/blur.jpg', function (err) {
if (!err) console.log('done');
});
结论
gm 是一个非常好用的 Node.js 图片处理模块,可以很方便地进行各种图片操作。需要注意的是,由于其底层使用 GraphicsMagick,因此在使用时需要安装 GraphicsMagick 或者 ImageMagick。同时,由于 gm 模块较为底层,因此需要一定的代码基础。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs图片处理工具gm用法小结 - Python技术站