Node.js 服务端处理图片
Node 服务端处理图片
服务端进行图片处理是很常见的需求,但是Node在这一块相对来说比较薄弱。找了几个比较常见的模块来解决问题。
gm
- 使用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-images
参考资料
Node.js 服务端处理图片的更多相关文章
- node.js服务端程序在Linux上持久运行
如果要想在服务端部署node.js程序,让其持久化运行,就不能单单使用npm start命令运行,当然了,这样运行是毫无问题的,但是当关闭xshell窗口或者是关闭进程的时候(其实关闭xshell窗口 ...
- Node.js 服务端图片处理利器
sharp 是 Node.js 平台上相当热门的一个图像处理库,其实际上是基于 C 语言编写 的 libvips 库封装而来,因此高性能也成了 sharp 的一大卖点.sharp 可以方便地实现常见的 ...
- [转] Node.js 服务端实践之 GraphQL 初探
https://medium.com/the-graphqlhub/your-first-graphql-server-3c766ab4f0a2#.n88wyan4e 0.问题来了 DT 时代,各种业 ...
- Node.js 本地Xhr取得Node.js服务端数据的例子
本以为用XHR取Nodejs http出的一段文字很简单,因为xhr取值和nodejs http出文字都是好弄的,谁知一试不是这回事,中间有个关键步骤需要实现. nodejs http出文字显示在浏览 ...
- ASP.NET Core 与 Vue.js 服务端渲染
http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oop ...
- NET Core 与 Vue.js 服务端渲染
NET Core 与 Vue.js 服务端渲染 http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/原作者: ...
- 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
前言 近来公司需要构建一套 EMM(Enterprise Mobility Management)的管理平台,就这种面向企业的应用管理本身需要考虑的需求是十分复杂的,技术层面管理端和服务端构建是架构核 ...
- 实践案例丨教你一键构建部署发布前端和Node.js服务
如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候. 例如你有10个项目,前后端 ...
- Node.js服务端框架谁才是你的真爱
1. Express 背景: Express, 疯一般快速(而简洁)的服务端JavaScript Web开发框架,基于Node.js和V8 JavaScript引擎. Express 是一个基于 No ...
随机推荐
- IntelliJ IDEA 2017.3尚硅谷-----模板
https://www.jetbrains.com/help/idea/using-live-templates.html
- Linux线程间同步的几种方式
信号量 信号量强调的是线程(或进程)间的同步:"信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞 ...
- break continue goto
break:跳出本层循环:continue:结束本次循环,并不跳出循环:goto:转移到指定位置,无条件转移:
- AOP使用
package com.googosoft.db.aspect; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lan ...
- MySQL学习(六)change-buffer
文章部分总结描述来自参考文章,属于半原创. 概述 文章将会介绍 change buffer 相关的知识点 查看 MySQL InnoDB 状态的命令 SHOW ENGINE INNODB ST ...
- Iris_cookie和session
3. Session的使用和控制 在实际的项目开发中,我们会经常有业务场景使用到Session功能.在iris框架中,也为我们提供了方便使用,功能齐全的Session模块.Session模块的源码目录 ...
- git 提交的时候 建立排除文件夹或者文件
1.在Git的根仓库下 touch .gitignore 2.编辑这个文件
- 机器学习(ML)十六之目标检测基础
目标检测和边界框 在图像分类任务里,我们假设图像里只有一个主体目标,并关注如何识别该目标的类别.然而,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置.在 ...
- C++四种初始化方式
1. 直接初始化直接调用与实参匹配的构造函数,形式如“T t(u)”.2. 拷贝初始化:复制初始化首先使用指定构造函数创建一个临时对象,然后用复制构造函数将那个临时对象复制到正在创建的对象”,形式如“ ...
- JS高级---把局部变量变成全局变量
如何把局部变量变成全局变量? 把局部变量给window就可以了 函数的自调用---自调用函数 一次性的函数--声明的同时, 直接调用了 (function () { console.log(& ...