From 1e402960f3b2917fb86586bd13ba8e0c30506e71 Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Thu, 10 Oct 2024 12:20:56 +0100 Subject: [PATCH] Fix ImageResize to accept width 0 or height = 0 --- Toolkit.Avalonia/ImageResizer.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Toolkit.Avalonia/ImageResizer.cs b/Toolkit.Avalonia/ImageResizer.cs index b73e8f5..a73c297 100644 --- a/Toolkit.Avalonia/ImageResizer.cs +++ b/Toolkit.Avalonia/ImageResizer.cs @@ -18,6 +18,16 @@ public class ImageResizer : stream.Seek(0, SeekOrigin.Begin); using SKBitmap sKBitmap = SKBitmap.Decode(stream); + if (targetHeight == 0 && maintainAspectRatio) + { + targetHeight = (int)((float)targetWidth / sKBitmap.Width * sKBitmap.Height); + } + + if (targetWidth == 0 && maintainAspectRatio) + { + targetWidth = (int)((float)targetHeight / sKBitmap.Height * sKBitmap.Width); + } + float widthRatio = (float)targetWidth / sKBitmap.Width; float heightRatio = (float)targetHeight / sKBitmap.Height; float scale = maintainAspectRatio ? Math.Max(widthRatio, heightRatio) : Math.Min(widthRatio, heightRatio); @@ -65,4 +75,5 @@ public class ImageResizer : return bitmap; } + } \ No newline at end of file