Node.js 服务端处理图片

Posted oasis-cuke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js 服务端处理图片相关的知识,希望对你有一定的参考价值。

Node 服务端处理图片

服务端进行图片处理是很常见的需求,但是Node在这一块相对来说比较薄弱。找了几个比较常见的模块来解决问题。

gm

GraphicsMagick for node

  • 使用OpenMP进行多线程图片处理,增强了通过扩展CPU提高处理能力。
  • 支持大图片的处理,并且已经做过GB级别的图像处理实验。
  • 能够动态的生成图片,特别适用于互联网的应用。

GraphicsMagick 是一个专注于提供图片处理工具的库集合,它是从 ImageMagick 5.5.2 分支出来。更为精简和效率。

安装

安装GraphicsMagick或者是ImageMagick

mac用户可以通过 brew 安装。

brew install graphicsmagick
# or
brew install graphicsmagick

npm install gm

项目中引入

npm install gm
const gm = require('gm')

使用

gm 的功能很强大这里做个简单的例子,给头像加个徽章。

const fs = require("fs");
const gm = require("gm");

gm("../assests/images/avatar.jpg")
  .resize(50, 50)
  .font("../assests/font/font.ttc")
  .fontSize(12)
  .fill("#ffffff")
  .drawText(0, 38, "注册会员")
  .write("../assests/images/output.png", function(err) 
    if (!err) console.log("done");
  );

效果

技术图片


技术图片

参考资料

以上是关于Node.js 服务端处理图片的主要内容,如果未能解决你的问题,请参考以下文章

Node.js之HTTP请求与响应

使用 node.js + react 服务器端渲染 + 通量 + mongodb 时的数据耦合策略

Node.js 实现存储服务的下载功能包含前后端代码

从服务端生成Excel电子表格(Node.js+SpreadJS)

是否可以在 node.js 服务器上设置运行(服务器端)的 socket.io 客户端?

利用 socket.io 实现消息实时推送