gm文字加背景图生成图片

gm文字加背景图生成图片

月光魔力鸭

2021-04-20 13:21 阅读 948 喜欢 0 gm imagemagic font

有一个需求,需要公司的LOGO信息,但是没有,只有公司的名字,想着先生成个默认的(本来是可以通过前端判断然后合成的..但是不想改小程序了),于是开始准备处理。

一般来说图片处理的话 gm 还是用的比较多的,可是碰到了很奇怪的问题。

const gm = require('gm');
gm(200, 100, "#4499ee")
.font('./font.ttf')
.drawText(10, 50, "中文")
.write("./coll/test.png", function (err) {
  console.log(err);
});
中文乱码

我开始还以为是我字体的问题,开始使用 ttc otf ,最后换成ttf 都没解决,顺便说一句,网上在线ttc转ttf 或 otf 转ttf 的随便找了几个都不能用,最后还是安装了FontCreator 来另存的(这又是一段伤心的故事,我找字体都找了好久,最后还是跟设计MM要的..心塞)

说回乱码的问题,这并不是字体的问题,是gm,不支持中文,可以通过使用imagemagic 来做中文处理,改成如下:

const gm = require('gm');
var imageMagick = gm.subClass({ imageMagick: true });
imageMagick(200, 100, "#4499ee")
.font('./font.ttf')
.drawText(10, 50, "中文")
.write("./coll/test.png", function (err) {
  console.log(err);
});

我之前是安装的gm ,上个电脑装的imageMagic ,刚好踩过这个坑。 坑的名字叫: ImageMagic command failed ... 出坑地址在这里:https://chrunlee.cn/article/nodejs-imagemagick-command.html

现在就可以无忧无虑的生成啦...

转载请注明出处: https://chrunlee.cn/article/gm-create-pic-with-font.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
当我们做爬虫或其他的一些应用的时候,如果需要一些短信验证,但是又没有那么多手机号,又不能放人在那里一直输入的时候?怎么办?
在我们做运维或者小工具的时候,总会有些需要提醒的事情,比如服务器宕机或者天气提醒,但是发email又会不够及时或者可能会忽略,那么短信就是一个不错的选择了
近期有个小工具,需要使用到本地数据库,想使用sqlite ,本来以为是个手到擒来的活... 没成想卡在了开始上。
记录下通过nodejs调用imagemagick 的时候发现的一个错误,command failed -- crop .
客户有一批音频需要处理成视频,最好是带有图片,于是就有了下文。
碰到个小需求,本来实现挺简单的,用的electron,开发模式下各种顺畅...半个小时就搞定了,结果倒在了electron打包上..这个坑我应该跳进来了好多次了..
通过pm2来实现nodejs应用的集群,不过我之前没做session共享,导致.. 登录不上啊 啊啊啊,无奈,又重新对redis进行了集成。
最近有客户提出了这么一个需求:微信dat文件在解码后的图片无法按照时间进行排序。 是的,解码后的文件的时间都是解码的时间,由于软件比较多,当时没做自动更新,所以在这里做一个小工具,可以将对应的解码后的图片的时间修改为微信dat文件对应的时间