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

安装

首先要安装 GraphicsMagick或者ImageMagick,然后

npm install --save gm

1

用法说明

图片尺寸

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资料!

http://aheckmann.github.io/gm/docs.html

http://www.graphicsmagick.org/GraphicsMagick.html

Linux截屏工具scrot用法详细介绍

Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用.   在Linux中安装Scrot ...

图片处理工具类 - ImageUtils.java

纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...

验证码图片生成工具类——Captcha.java

验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载  Captcha.java) import java. ...

免费Gif图片录制工具

/************************************************************************* * 免费Gif图片录制工具 * 说明: * 最近在 ...

Base64 图片转换工具

以前在写asp的后台的时候,有一个上传功能是必须的,那时候进行的图片预览(未上传前)其实就是获取本地的图片路径来显示图片,但是随着HTML5的出现,可以把图片通过编码来实现预览. 在雅虎的36条速度优 ...

Java操作图片的工具类

操作图片的工具类: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.a ...

java图片处理工具类

直接上代码: package com.zxd.tool; /** * Created by zhang on 14-3-1. * 图片的常用操作类 */ import java.awt.AlphaCo ...

【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用

在上一篇文章中,我们提到了图片必须是2的n次方的问题.但是随着Libgdx的不断完善和发展,使用一些工具就 可以很好的解决了这样一个问题,但是它的功能又不仅仅只限于此,那么下面就来让我们看看Textu ...

PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia)。据说yEd也很不错。

SBCL编译过程 - O.Nixie的专栏 - 博客频道 - CSDN.NET PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia).据说yEd也很不 ...

随机推荐

drop delete truncate 区别

http://jingyan.baidu.com/article/8275fc8693e11846a03cf696.html

atitit.web原理 理论attilax总结

atitit.web原理 理论attilax总结 1. Web3.01 2. Web的未来趋势1 3. Web语言与应用导论_百度百科.html2 4. ...

IT男的”幸福”生活"续7

哇,兄弟们的热情真牛X的高呀!!! 在这里谢谢大家了.同时祝大家元宵节快乐,幸福美好.呵呵. 续7准备开始了… ….. 是什么样的事困扰她了… 躺在床上我,一直回想着MM,今天的情绪状态. 分析一下: ...

ibatis基本内容简介

iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2002年发起的开放源代码项目.于2010年6月16号被 谷歌托管,改名为MyBatis.是一个 ...

pointcut 表达式的含义

execution(* com.spring.dao.*.add*(..)) 第一个*表示任意返回值 第二个*表示com.spring.dao包中所有类 第三个*表示以add开头的所有方法 (..)表 ...

hibernate 保存报错 Hibernate operation: could not get next sequence value;

错误信息: [2017-09-28 18:51:38,854]-[org.hibernate.util.JDBCExceptionReporter:101] ERROR - Numeric Overf ...

Linux LVM卷组管理

Linux LVM卷组管理 由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理. 由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数 ...

51Nod 1668 非010串

这是昨天上课ChesterKing dalao讲线代时的例题 当时看到这道题就觉得很水,记录一下后面两位的情况然后讨论一下转移即可 由于之前刚好在做矩阵题,所以常规的矩阵快速幂优化也很简单 好我们开始 ...

mysql 主从数据不一致 Slave_SQL_Running: No 解决方法

在slave服务器上通过如下命令 mysql> show slave status\G; 显示如下情况: Slave_IO_Running: Yes Slave_SQL_Running: No ...

利用Red Blob游戏介绍A*算法

转自:http://gad.qq.com/program/translateview/7194337 在游戏中,我们经常想要找到从一个位置到另一个位置的路径.我们不只是想要找到最短距离,同时也要考虑旅 ...

nodejs gm 中文 linux,nodejs图片处理工具gm用法相关推荐

  1. linux系统宝塔安装nodejs,node安装,nodejs安装,Windows nodejs安装,Linux nodejs安装

    node安装,nodejs安装,Windows nodejs安装,Linux nodejs安装 Windows系统: 安装:node-v12.14.0-x86.msi 查看:node -v 返回版本信 ...

  2. nodejs图片处理工具gm用法

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

  3. node_demo_03 一个好玩的图片处理工具gm模块小练习。

    /* *修改图片大小 */ //需引用第三方模块,在工作目录下执行npm install gm即可 //通过require引用,Subclass gm to enable ImageMagick va ...

  4. 【linux】记录nodejs使用图片处理工具gm

    前言 nodejs项目需要生成缩略图,由于node本身无法处理,需要用到GraphicsMagick工具,于是开始网上找工具,中间踩了一些坑,于是记录下来. 安装GraphicsMagick 安装这个 ...

  5. nodejs 图片处理工具 gm 的使用!

    环境要求 1. 安装 GraphicsMagick 下载地址: http://www.graphicsmagick.org/ 2. 安装 ImageMagic 下载地址: https://imagem ...

  6. Linux技术网站中文,Linux技术网站,putty工具,中文显示设置

    专业的Linux技术网站,用户遍布全国各地,拥有大批的Linux专家与工程师,汇集海量Linux信息,是中国Linux人的网上家园. 默认情况下,putty是不支持中文显示的,当使用putty ssh ...

  7. linux图像处理工具,linux下图片处理工具ImageMagick使用方法

    图片在网站所占的比重越来越重.更好的优化图片可以提高网站速度.减少宽带流量. ImageMagick 是一个用来创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.图片切割.颜色替换.各 ...

  8. linux下图片裁剪工具,linux下图片处理工具ImageMagick使用方法

    图片在网站所占的比重越来越重.更好的优化图片可以提高网站速度.减少宽带流量. ImageMagick 是一个用来创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.图片切割.颜色替换.各 ...

  9. Linux下安全扫描工具Nmap用法详解

    扫描器是一种能够自动检测主机安全性弱点的程序.扫描器通过发送特定的网络数据包,记录目标主机的应答消息,从而收集关于目标主机的各种信息.目前网络上有很多扫描软件,比较著名的扫描器有SSS,X-Scan, ...

最新文章

  1. 查看源代码不方便?我有利器
  2. SharePoint 站点出现Http 503 错误
  3. Java中根据URL下载gif图片文件
  4. FreeRTOS源码分析与应用开发06:软件定时器
  5. 第 19 次 CCF CSP 认证 202006-2 稀疏向量(svector)
  6. postifx网络服务的搭建和配置
  7. 亿级爆款背后,网易云音乐的生长之道
  8. 纳德拉:Excel是微软的最佳象征 难以想象没有它的世界
  9. 全球第一开源ERP Odoo操作手册 数据库自动备份
  10. 微信公众号H5音频视频自动播放(安卓,苹果)
  11. 局域网打印机共享怎么设置_局域网如何共享打印机
  12. 第一章:Html-超文本标记语言
  13. 2022-2027年中国熔融碳酸盐型燃料电池行业市场全景评估及发展战略规划报告
  14. 《中国近代史纲要》思维导图复习版
  15. 移动支付这回真的逆天了!什么才是真正的资本运作?让微信春晚来告诉你!...
  16. iOS的键盘种类(不同的键盘布局)
  17. 《流浪地球》中的逃生气囊球和马斯克有什么关系?
  18. 【论文阅读】Geography-Aware Sequential Location Recommendation
  19. 操作系统的作用是什么?目前主流的操作系统有哪些?主要特点是什么?
  20. 区分LLC和MAC协议差异详解

热门文章

  1. shell脚本进制转换
  2. 新概念英语第三册第一课
  3. 飞书机器人小助手@特定人
  4. 问题分享:Word中图片显示不全的解决方法
  5. 个人知识库的分类目录_提前退休武器库IP运营知识库个人IP打造必备创业技能目录...
  6. 编程猫Nemo基本代码块
  7. 世界女性科技群落(五):数字化黄金时代,东南亚女性都是隐藏的阿尔法
  8. 2.15 双创园区:武汉东湖高新区
  9. 2022第十三届蓝桥杯国赛真题javaB组
  10. 驾考app驾考理论速成技巧驾校源码小程序驾考理论驾考科目三3D仿真灯光模拟实现