有一个需求,需要公司的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