nodejs gm 中文 linux,nodejs图片处理工具gm用法小结

在做H5应用中,有时候会涉及到一些图片加工处理的操作,nodejs有一个很好的后台图片处理module,就是这里说的gm。gm有官方文档,但感觉写得太抽象,反而看不懂了。这里把一些常见的用法写下,供大家参考。

安装

npm install --save gm

GraphicsMagick和ImageMagick的区别

GraphicsMagick是从ImageMagick中分离出来的,推荐下载ImageMagick

加载GraphicsMagick(大小4.72 MB)

var gm = require('gm')

加载ImageMagick(大小23.8 MB)

var gm = require('gm').subClass({imageMagick: true})// 注意使用的区别

除了加载有区别,其他使用方式完全一样

用法说明

图片尺寸

gm('img.png')

.size(function (err, size) {

if (!err)

console.log(size.width > size.height ? 'wider' : 'taller than you');

});

图片伸缩

可以只依据宽、高或者同时将宽高都放缩。

gm("img.png").resize(width)//保持宽高比

gm("img.png").resize(null, height)//保持宽高比

gm("img.png").resize(width, height, '!')//参数'!'用于忽略宽高比

图片旋转

将图片旋转degrees,背景填充color。

gm("img.png").rotate(color, degrees)

gm("img.png").rotate('green', 45)

图片裁剪

从图片的(x, y)位置开始,裁剪出一个宽为width,高为height的图片来。

gm("img.png").crop(width, height, x, y)

图片拼接(mosaic)

gm()

.in('-page', '+0+0')

.in('bg.jpg')

.in('-page', '+10+20') // location of smallIcon.jpg is x,y -> 10, 20

.in('smallIcon.jpg')

.mosaic()

.write('tesOutput.jpg', function (err) {

if (err) console.log(err);

});

图片合成(compose)

gm()

.command("composite")

.in("-gravity", "center")

.in(change_image_url)

.in(base_image_url)

.write( output_file, function (err) {

if (!err)

console.log(' hooray! ');

else

console.log(err);

});

不太清楚图片拼接(mosaic)与合成(compose)有什么区别,gm提供了两条命令,对于简单的图片合成,好像都可以使用。

图片拼接(append)

gm中使用append也可以实现图片的拼接,与mosaic、compose不同的是,这里的拼接应该是不能覆盖的。缺省参数ltr表示拼接方向,布尔变量,true表示从左到右,false表示从上到下,默认false。

gm("img.png").append(img [, img, ltr])

gm("img.png").append("another.jpg", "third.gif")//从上到下拼接

gm("img.png").append("another.jpg", "third.gif", true)//从左到右拼接

图片注释

在图片的(x, y)位置绘制文字。

gm("img.png").drawText(10, 50, "from scratch")

创建图片

gm(200, 400, "#ddff99f3")

.drawText(10, 50, "from scratch")

.write("/path/to/brandNewImg.jpg", function (err) {

// ...

});

总结

gm具有强大的图片处理功能,nodejs还是借助于gm工具来实现的图片处理,对于需要后台处理图片的情形,这个是挺有用的。

gm提供的各个函数其实可以复合使用,就是说,先读取(gm)图片后,可以先进行拼接(mosaic, compose, append),然后裁剪(crop),放缩(resize)到指定大小后,最后才保存(write)下来。

gm的官方文档感觉过于简陋,网上的关于nodejs gm用法的资料也不多,本文将一些基本的用法总结下来,学到到新的持续更新。

另外,欢迎大家总结nodejs gm资料!

附gm参考资料

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Node.js 中的图片处理模块有很多,以下是一些常用的: 1. Sharp:一个高性能的图片处理库,支持缩放、裁剪、旋转、锐化、模糊等操作。 2. Jimp:一个纯 JavaScript 编写的图片处理库,支持常见的图片操作,如缩放、裁剪、旋转、滤镜等。 3. GraphicsMagick:一个功能强大的图片处理库,支持多种格式的图片处理,如缩放、旋转、剪裁等,可以通过 Node.js 的 gm 模块调用。 4. ImageMagick:与 GraphicsMagick 类似,同样是一个功能强大的图片处理库,也可以通过 Node.js 的 imagemagick 模块调用。 5. canvas:一个基于 HTML5 Canvas 的图片处理库,支持绘制、裁剪、变换等操作,可以在 Node.js 中使用。 以上是一些常用的 Node.js 图片处理模块,你可以根据自己的需求选择合适的模块。 ### 回答2: Node.js中有一些常用的图片处理模块,可以方便地进行图片处理和操作。 1. GraphicsMagick:它是一个强大的开源图片处理库,Node.js使用gm模块来对其进行封装。它支持各种图片格式的读取与写入,可以进行图片缩放、裁剪、旋转、合并等操作。使用该模块可以很方便地在Node.js中处理大量的图片。 2. Sharp:这是一个高性能的图像处理库,可以用于修改、调整和转换图像。它支持图片的压缩、缩放、裁剪、旋转等操作,并具有较高的速度和内存使用效率。Sharp在处理大型图片时表现出色,是一个非常流行的图片处理模块之一。 3. Jimp:这是一个纯JavaScript编写的图片处理库,可以在Node.js中进行图片处理和操作。它支持常见的图片格式,并且提供了丰富的API来进行图片的缩放、裁剪、颜色处理、文本叠加等操作。Jimp易于学习和使用,适合用于简单的图片处理需求。 这些图片处理模块都可以在Node.js中很方便地安装和使用,可以根据具体的需求选择适合自己的模块来处理图片。无论是对于网站的图片上传和处理,还是对于图像数据的分析和处理,Node.js的图片处理模块都能提供便捷的解决方案。 ### 回答3: Node.js中的图片处理模块有很多选择,其中一些最受欢迎和广泛使用的模块包括: 1. `sharp`:这是一个高性能的图像处理库,可以在Node.js中快速处理图像。它支持图像的调整大小、裁剪、旋转、转换格式、应用滤镜等操作。 2. `gm`:这是另一个流行的图像处理模块,可以使用GraphicsMagick或ImageMagick在Node.js中进行图像操作。它支持图像的剪裁、缩放、旋转、转换格式等功能。 3. `jimp`:这是一个纯JavaScript编写的图像处理库,在Node.js中可以进行图像的调整大小、裁剪、旋转、滤镜应用等操作。它提供了易于使用的API,并且支持跨平台使用。 4. `lwip`:这是一个轻量级的图像处理库,可以在Node.js中进行图像的缩放、裁剪、旋转等操作。它提供了简单的API和异步操作,适合用于快速的图像处理需求。 除了以上提到的模块,还有许多其他的图像处理模块可供选择,每个模块都有其特定的优点和适用场景。根据项目需求和个人偏好,选择合适的模块进行图像处理是非常重要的。需要根据具体的使用情况和需求来评估各个模块的性能、功能和易用性,并选择最适合的模块来完成工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值