node党悲催的发现,图片处理工具只有一个gm可以选。gm无非是调用了GraphicsMagick/ImageMagick而已,性能不敢恭维。但是有很多后台生成图片的场景,没办法,只能硬着头皮上了。

前文 ( nodejs图片处理工具gm用法 ) 总结了nodejs gm的基本操作,本篇细说给图片添加文字的接口drawText。

基本用法

gm("test.png")

.drawText(x, y, text [, gravity])

1

2

如果没有gravity参数,那么就将text绘制到图片中的(x,y)坐标处。

如果带有gravity参数,从(x,y)坐标开始到右下角构成的图片范围内,依据gravity含义绘制文字。

gravity选项如下:

NorthWest, North, NorthEast, West, Center,

East, SouthWest, South, or SouthEast

1

2

用法示例:

值得注意的是,在带有gravity的情形下,(x,y)坐标能起到对位置的调整作用,而且还可以取负值。

gm('test.png')

.drawText(100, 100, 'Hello')            //绘制到(100,100)位置处

.drawText(0, 0, 'Hello', 'Center'); //绘制到图片正中间

.drawText(0, 10, 'Hello', 'Center');    //图片上面裁除10px,剩下部分的中心。等同于原图中心往下5px

.drawText(0, -10, 'Hello', 'Center');   //同上,等同于原图中心往上5px

.drawText(0, 0, 'Hello', 'NorthEast');  //原图右上角

1

2

3

4

5

6

7

8

9

10

11

中文

gm不能直接绘制中文,需要在绘制的时候引入相应的字库。

gm('test.png')

.font('./fonts/heiti.ttf')      //引入预先下载的黑体字库

.drawText(10, 10, '这是一个测试')

1

2

3

字体大小

可以通过fontSize修改字号。

gm('test.png')

.fontSize(36)           //字体大小36

.drawText(10, 10, '这是一个测试')

1

2

3

字体颜色

通过fill修改填充颜色。

gm('test.png')

.fill('#ffffff')        //设置白色

.drawText(10, 10, '这是一个测试')

1

2

3

字体、大小和颜色,有了这些,基本上就可以自由的在图片上绘制了。

参考

官方文档:GraphicsMagick for node.js

How do I change the color of text I’m drawing with node graphicsmagick?

Nodejs图片编辑和中文乱码

nodejs gm 中文 linux,nodejs gm drawText使用(中文、字体、大小及颜色)相关推荐

  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. HQChart使用教程68 - 配置DRAWTEXT, DRAWICON, DRAWNUMBER字体大小

    HQChart使用教程68 - 配置DRAWTEXT, DRAWICON,DRAWNUMBER字体大小 分析家语法 版本要求 默认位置 DRAWICON DRAWNUMBER DRAWTEXT DRA ...

  3. Linux下mysql支持中文,linux下mysql环境支持中文配置步骤

    sql脚本执行前加上: CREATE DATABASE IF NOT EXISTS mydatabase DEFAULT CHARSET utf8 COLLATE UTF8_GENERAL_CI; u ...

  4. linux qtcreator输入中文,linux下QtCreator无法输入中文的情况

    解决linux下QtCreator无法输入中文的情况 安装了QtCreator5.3.1后无法输入中文,确切的说是无法打开输入法.以前使用iBus输入法的时候没有这个问题,现在使用sougou输入法才 ...

  5. nodejs gm 中文 linux,nodejs图片处理工具gm用法

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

  6. linux下文件下载中文,LINUX环境下资源下载中文目录及中文文件名称问题

    项目采用UTF-8作为统一的编码(JVM中缺省字符集.Tomcat的URIEncoding字符集.Struts2的Locale字符集配置.过滤器字符集.页面统一编码.数据库编码.mysql数据库连接字 ...

  7. linux设置steam为中文,Linux下Steam中支持中文的办法

    搜索过好几个解决方案,诸如添加skin等等,在我的ARCH机器上似乎都不行然后在搜索linux steam cjk时, 发现一个链接中有解决DOTA2显示中文不正确的问题,感觉可能有用,就参考着搞定了 ...

  8. wordpress搜索不了中文linux,WordPress上传带中文汉字名称的图片不显示的解决办法...

    以上是WordPress上传带中文汉字名称的图片不显示的情况,正常上传成功的话,在上图两个地方都会有图片缩略图显示.相信很多WordPress装载linux系统上的朋友都会遇到这样的错误. WordP ...

  9. linux系统steam中文,Linux下Steam中支持中文的办法

    搜索过好几个解决方案,诸如添加skin等等,在我的ARCH机器上似乎都不行然后在搜索linux steam cjk时, 发现一个链接中有解决DOTA2显示中文不正确的问题,感觉可能有用,就参考着搞定了 ...

  10. linux 修改百度网盘界面 字体大小

    cd /usr/share/applications 找到百度网盘的 .desktop文件 我的是com.baidu.baidunetdisk.desktop --force-device-scale ...

最新文章

  1. 共享文件迁移(fileserver)——从windows server 2003到windows server 2008
  2. ASP.NET缓存之 没有为 SQL 缓存通知启用数据库“ReplaceShop”。
  3. art-template在项目中的应用
  4. web浏览器_vs2019使用webview2开发web浏览器 - 左正
  5. ps海报合成教程_PS教程:别不信,你也能合成游戏场景!
  6. ActionScript 3.0编译器编译错误大全【转】
  7. 为什么需要 Redis 哨兵?
  8. 马云再谈 996:真正的 996 与被剥削无关
  9. 系统设计(二)——TinyURL系统设计
  10. 语音识别开放平台调研以及主要技术
  11. Tomcat 服务器状态监控显示PS Survivor Space 99%
  12. java中如何获得方法中的参数名
  13. Google Earth影像数据破解之旅
  14. Chrome 浏览器小恐龙游戏变身超级马利奥
  15. prisma中where对象转换RedisJson查询字符串
  16. 篇1:如何为FPGA选择合适的电源管理方案
  17. 【COCI 2011】送票
  18. 管理职工工资属于计算机什么应用领域,计算机练习题
  19. android代码编写,如何正确编写Android代码
  20. Android 二维码 生成和识别

热门文章

  1. CAD中插入外部参照字体会变繁体_什么是CAD的形文件,它与字体文件有什么区别?...
  2. Android基于在线地图的轨迹跟踪服务
  3. 智能交通综合管控平台方案
  4. 探寻微博背后的大数据原理:微博推荐算法简述
  5. mate30pro鸿蒙系统刷机包下载,华为 Mate 30 Pro 的鸿蒙 2.0 Beta 版刷机包流出(附下载地址)...
  6. Linux C编程学习之路
  7. 【C语言】输出100内素数
  8. 修改TIM文件存储路径
  9. matlab熊,小熊解答win10系统安装matlab10.1的办法
  10. 2022道路运输企业安全生产管理人员操作证考试题及在线模拟考试