我有一个500 it到167 it图像,我想增加2行文字,但那些需要居中,我怎么做呢?我正在使用node.js和jimp包,最后一行将始终更改长度,就像在不同的用户名中一样!
Jimp.read("./imgs/background.png").then(function (image) {
image.resize(500, Jimp.AUTO)
.quality(100);
image.write("./imgs/background-test.png");
Jimp.loadFont(Jimp.FONT_SANS_32_WHITE).then(function (font) {
//What do I do here? image.print(font, x, y, "Welcome Username", 7)
image.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
image.write("./imgs/background-test.png");
})
});
}).catch(function (err) {
console.error(err);
});发布于 2020-08-03 19:34:43
所以我看这个问题还没有答案,所以为了将来的参考,我只回答这个问题。
这个特性是在285版中添加的,但是它从来没有被很好地记录下来。
image.print(font, pos.x, pos.y, {
text: "Example test",
alignmentX: Jimp.HORIZONTAL_ALIGN_CENTER,
alignmentY: Jimp.VERTICAL_ALIGN_CENTER
}, pos.maxX, pos.maxY);有时候需要pos.maxX和.maxY,所以Jimp知道让文本居中的位置是什么,有时它自己也是这样做的,但是如果它不能工作,那么这基本上是调试的第一步。
如果这不起作用,您可以使用老式的方法,通过获取图像和位图的大小,将其除以2,并将其定义为x和y (max)位置。
请给我反馈这篇文章,这是我的第一个答案,我很想学写更好的答案。
https://stackoverflow.com/questions/50330430
复制相似问题