我有一个500 px x x 167 px的图像,我想添加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);
});
2条答案
按热度按时间gupuwyp21#
所以我看到这个问题还没有答案,所以为了将来的参考,我只回答这个问题。
这个特性是在版本285中添加的,但它从来没有得到很好的记录。
pos.maxX
和.maxY
有时候是需要的,这样Jimp就知道文本居中的位置,* 有时候 * 它自己会这样做,但如果它不起作用,那么这基本上是调试的第一步。如果这不起作用,您可以使用老式的方法,通过获取图像和位图的大小,将其除以2并将其定义为x和y(最大)位置。
请给予我这个职位的反馈,这是我的第一个答案,我很想学习写更好的答案。
wgx48brx2#
用途:
Jimp.HORIZONTAL_ALIGN_CENTER
和Jimp.VERTICAL_ALIGN_MIDDLE