Gau*_*ain 6 node.js graphicsmagick
我正在使用GraphicsMagick的node.js 模块.
在我的Node JS应用程序中,我需要为现有图像添加文本标签,例如:1)如果文本长于图像大小,则文本自动换行到下一行2)如果文本不能为适应图像,文本的字体大小会自动调整(缩小)以适合图像的框
GraphicsMagick的node.js模块提供的API是:
gm("img.png").drawText(x,y,text [,gravity])
但是,根据上述两个要求,这并没有提供任何选项来将文本放入框中.如果我单独使用此API,我将需要手动中断文本,并更改文本字体大小以适合图像,但即使如此,我还是需要首先能够测量文本大小.有没有办法做到这一点?
有什么建议?
为了便于说明,下面的图像显示了三个不同的文本字符串,需要适合相同大小的框.希望它澄清一下.
我已经浪费了半天时间,但可以解决这个问题。我使用 gm 与gm.subClass({ imageMagick: true }). 我认为您可以使用它进行一些更改来完全解决您的问题。
public createPreview(text: string) {
this.imageGenerator(800, 600, '#4c4cfc')
.fill('#FFFFFF')
.font('../../../client/assets/fonts/GraphikLCG-Bold.woff')
.fontSize('46')
.out('-background', '#4c4cfc')
.out('-size', '400x', 'caption:' + text)
.out('-gravity', 'center')
.out('-composite')
.write('./brandNewImg.jpg', (err: any) => {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
}