如何使用jimp合成和添加字体(node.js)

时间:2019-06-02 07:25:15

标签: node.js npm

如何合成文本并将其添加到一张图像中?

这是我的代码

var images = ['background.png', '.'+dropitem_image];
var jimps = [];
for (var i = 0; i < images.length; i++) {
   jimps.push(jimp.read(images[i]));
}
Promise.all(jimps).then(function(data) {
   return Promise.all(jimps);
}).then(function(data) {
var tweetitemwidth = data[1].inspect().split(' ')[1].split('>')[0].split('x')[0];
var tweetitemheight = data[1].inspect().split(' ')[1].split('>')[0].split('x')[1];
var sizewidth = 250-parseInt(tweetitemwidth)/2;
var sizeheight = 250-parseInt(tweetitemheight)/2;
data[0].composite(data[1],sizewidth,sizeheight+50);
data[0].write('public/images/tweets/tweet-'+dropitem_itemid+'.png', function() {
    console.log('done');
});

});

这有效,现在将两张图像合并为一张。 但是如何现在以底部居中的方式添加文本:/

我尝试了在jimp文档中发现的内容,但是它仅显示了仅使用字体或仅使用复合字体的方式。并非所有两种方法都可获取一张图像

这就是我尝试过的(但不起作用!)

    data[0].composite(data[1],sizewidth,sizeheight+50);
    Jimp.loadFont(Jimp.FONT_SANS_32_WHITE).then(function (font) {
        data[0].print(font, x, y, {
            text: "$"+(dropitem_itemprice / 100).toFixed(2),
            alignmentX: jimp.HORIZONTAL_ALIGN_CENTER,
            alignmentY: jimp.VERTICAL_ALIGN_BOTTOM
        }, maxWidth, maxHeight);
    });
    data[0].write('public/images/tweets/tweet-'+dropitem_itemid+'.png', function() {

0 个答案:

没有答案