Есть ли способ использовать локальное изображение в моем C# проекте для моей адаптивной карты вместо веб-URL? - PullRequest
1 голос
/ 19 марта 2020

Я хочу использовать адаптивную карту внутри своего бота, но я не хочу получать изображение внутри нее из веб-URL. Вместо этого я хочу, чтобы изображение находилось внутри моего проекта, а адаптивная карта должна получить изображение из папки проекта. Возможно ли это, и если да, то как?

1 Ответ

0 голосов
/ 20 марта 2020

В проводнике схем видно, что образы Adaptive Card поддерживают URI данных (встроенные образы) в версии 1.2+. Мне удалось получить встроенное изображение для рендеринга на адаптивной карте, например:

{
  "$schema": "http://adaptivecards.io/schemas/1.2.0/adaptive-card.json",
  "version": "1.2",
  "type": "AdaptiveCard",
  "body": [
    {
      "type": "TextBlock",
      "text": "Embedded Image"
    },
    {
      "type": "Image",
      "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKBJREFUeNpiYBjpgBFd4P///wJAaj0QO9DEQiAg5ID9tLIcmwMYsDgABhqoaTHMUHRxpsGYBv5TGqTIZsDkYWLo6gc8BEYdMOqAUQeMOoAqDgAWcgZAfB9EU63SIAGALH8PZb+H8v+jVz64KiOK6wIg+ADEArj4hOoCajiAqMpqtDIadcCoA0YdQIoDDtCqQ4KtBY3NAYG0csQowAYAAgwAgSqbls5coPEAAAAASUVORK5CYII="
    }
  ]
}

enter image description here

Обратите внимание, что я выбрал очень маленькое изображение, потому что сообщения и вложения имеют ограничения по размеру. Встраивание изображений никогда не рекомендуется, но если у вас большое изображение, то это невозможно.

Если вы знаете, какое изображение вы хотите использовать заранее, тогда вы можете заранее преобразовать его в base 64 и даже не включать изображение в папке вашего проекта, но если вам нужна помощь в преобразовании локального изображения в URI данных программным способом, вы можете взглянуть на пример вложений .

...