You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
901 B
33 lines
901 B
|
2 years ago
|
using System;
|
||
|
|
using System.IO;
|
||
|
|
using System.Net.Http;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
using Avalonia.Media.Imaging;
|
||
|
|
using Avalonia.Platform;
|
||
|
|
|
||
|
|
namespace speedLight.UI.Helpers;
|
||
|
|
|
||
|
|
public class ImageHelper
|
||
|
|
{
|
||
|
|
public static Bitmap LoadFromResource(Uri resourceUri)
|
||
|
|
{
|
||
|
|
return new Bitmap(AssetLoader.Open(resourceUri));
|
||
|
|
}
|
||
|
|
|
||
|
|
public static async Task<Bitmap?> LoadFromWeb(Uri url)
|
||
|
|
{
|
||
|
|
using var httpClient = new HttpClient();
|
||
|
|
try
|
||
|
|
{
|
||
|
|
var response = await httpClient.GetAsync(url);
|
||
|
|
response.EnsureSuccessStatusCode();
|
||
|
|
var data = await response.Content.ReadAsByteArrayAsync();
|
||
|
|
return new Bitmap(new MemoryStream(data));
|
||
|
|
}
|
||
|
|
catch (HttpRequestException ex)
|
||
|
|
{
|
||
|
|
Console.WriteLine($"An error occurred while downloading image '{url}' : {ex.Message}");
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|