(Node.JS Jimp)我如何将文本居中?

时间:2018-05-14 12:32:17

标签: node.js image

我有一个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);
      });

1 个答案:

答案 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(最大)位置。


请给我有关此帖子的反馈,这是我的第一个答案,我很乐意学习更好地编写答案。