【发布时间】:2020-10-19 15:23:33
【问题描述】:
所以我收到图标 URL 的输入,并希望在 Microsoft Teams 的 AdaptiveCards 上显示它们
我的问题是当我收到一个带有 svg 扩展名的图标 URL 时,它不会在自适应卡上呈现并用未定义替换它
我试过这样做:
byte[] imageBytes;
using (var webClient = new WebClient())
{
imageBytes = webClient.DownloadData(appSuggestion.IconUri.AbsoluteUri);
}
this.Body.Add(new AdaptiveColumnSet
{
Columns = new List<AdaptiveColumn>
{
new AdaptiveColumn
{
Items =
{
new AdaptiveImage
{
Url = new System.Uri("data:image/svg+xml;base64,"+Convert.ToBase64String(imageBytes)),
PixelWidth = 45,
PixelHeight = 45,
},
},
Width = AdaptiveColumnWidth.Auto,
},
}
}
但它仍然没有工作.. 有什么想法,如何在不将图像保存在本地路径的情况下将 svg 转换为 png?
【问题讨论】:
-
这能回答你的问题吗? Converting SVG to PNG using C#
-
@Tofik 否,解决方案期望图像保存在本地,或者 png 版本将保存在本地
-
特别是第二个答案不需要。你得到位图/MemoryStream
-
您必须考虑是否可以将SVG直接粘贴到网页而不是将其转换为PNG,而不是插入为
data:image/svg+xml;base64, -
@LeszekMazur 不太了解你,我得到的 svg 链接在网页中可以正常工作..
标签: c# microsoft-teams adaptive-cards