From ffbd8fd650d8efa3e5b350ac9b830d32e1167a0f Mon Sep 17 00:00:00 2001 From: Garulf <535299+Garulf@users.noreply.github.com> Date: Tue, 30 Aug 2022 01:48:05 -0400 Subject: [PATCH] Add logic for IcoPath's that are web URL's --- .../Image/ImageLoader.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Flow.Launcher.Infrastructure/Image/ImageLoader.cs b/Flow.Launcher.Infrastructure/Image/ImageLoader.cs index 8c1d7d74f..fdf5c8e18 100644 --- a/Flow.Launcher.Infrastructure/Image/ImageLoader.cs +++ b/Flow.Launcher.Infrastructure/Image/ImageLoader.cs @@ -3,6 +3,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Net; using System.Threading.Tasks; using System.Windows.Media; using System.Windows.Media.Imaging; @@ -113,7 +114,27 @@ namespace Flow.Launcher.Infrastructure.Image { return new ImageResult(ImageCache[path], ImageType.Cache); } + if (path.StartsWith("http://") || path.StartsWith("https://")) + { + // Download image from url + using (WebClient client = new WebClient()) + { + using (MemoryStream stream = new MemoryStream(client.DownloadData(path))) + { + var image = new BitmapImage(); + image.BeginInit(); + image.CacheOption = BitmapCacheOption.OnLoad; + image.StreamSource = stream; + image.EndInit(); + image.Freeze(); + ImageCache[path] = image; + return new ImageResult(image, ImageType.Data); + } + + } + + } if (path.StartsWith("data:", StringComparison.OrdinalIgnoreCase)) { var imageSource = new BitmapImage(new Uri(path));