我的项目目录中有一个图像。我需要在英雄卡中显示该图像。只能通过URL将图像添加到英雄卡吗?
如果不是如何在英雄卡中添加本地存储的图像,或者可以选择其他任何可以使用的卡(例如自适应卡)?
答案 0 :(得分:0)
您可以将图像编码为base64并将其添加到英雄卡中。使用fs包创建图像的位图,使用该位图创建一个新的Buffer对象,然后将缓冲区转换为base64字符串。有关更多详细信息,请参见下面的代码段。请注意,文件路径必须是图像的绝对路径。
编码图像
const fs = require('fs');
function encodeBase64(path) {
const bitmap = fs.readFileSync(path);
return new Buffer(bitmap).toString('base64')
}
创建HeroCard
createHeroCard(image, imageType='jpg') {
return CardFactory.heroCard(
'BotFramework Hero Card',
CardFactory.images([`data:image/${imageType};base64,${encodeBase64(image)}`, 'http://localhost:3978/dog.jpg']),
CardFactory.actions([
{
type: 'postBack',
title: 'Button',
value: 'Button'
}
])
);
}
希望这会有所帮助!