我有一个500px到167px的图像,我想添加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);
});
答案 0 :(得分:0)
所以我看到这个问题还没有答案,所以为了以后的参考,我将回答这个问题。
此功能是在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知道将文本居中的位置,有时会自行执行,但是如果不需要,
如果没有用,您可以使用老式的方法,通过获取图像和位图的大小,将它们除以二并定义x和y(最大)位置。
请给我有关此帖子的反馈,这是我的第一个答案,我很乐意学习更好地编写答案。