Korero – Rev 1
?pathlinks?
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Korero.Properties;
namespace Korero.Communication
{
public static class Utilities
{
#region Public Methods
public static async Task<Image> DownloadImage(Guid imageId, MqttCommunication mqttCommunication,
CancellationToken cancellationToken)
{
var data = new Dictionary<string, string>
{
{"command", "download"},
{"group", Settings.Default.Group},
{"password", Settings.Default.Password},
{"type", "Texture"},
{"format", "Bmp"},
{"timeout", $"{Settings.Default.ImageDownloadTimeout}"},
{"item", $"{imageId}"}
};
var callback = await mqttCommunication.SendCommand(new Command(data), cancellationToken);
if (callback == null || !callback.Success)
{
return null;
}
var imageBase64 = callback.Data.FirstOrDefault();
if (string.IsNullOrEmpty(imageBase64))
{
return null;
}
var imageBytes = Convert.FromBase64String(imageBase64);
if (imageBytes.Length == 0)
{
return null;
}
using (var memoryStream = new MemoryStream(imageBytes))
{
var image = Image.FromStream(memoryStream);
return image;
}
}
#endregion
}
}
Generated by GNU Enscript 1.6.5.90.