如何合成文本并将其添加到一张图像中?
这是我的代码
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() {