Ruben 1 gadu atpakaļ
vecāks
revīzija
2c47955b6c

+ 2 - 16
src/PicView.Avalonia/UI/FunctionsHelper.cs

@@ -220,19 +220,9 @@ public static class FunctionsHelper
         await UIHelper.RotateRight(Vm);
     }
 
-    public static Task RotateLeft()
+    public static async Task RotateLeft()
     {
-        if (Vm is null)
-        {
-            return Task.CompletedTask;
-        }
-
-        if (GalleryFunctions.IsFullGalleryOpen)
-        {
-            return Task.CompletedTask;
-        }
-        Vm.ImageViewer.Rotate(clockWise: true);
-        return Task.CompletedTask;
+        await UIHelper.RotateLeft(Vm);
     }
 
     public static async Task Down()
@@ -732,10 +722,6 @@ public static class FunctionsHelper
 
     public static async Task Flip()
     {
-        if (Vm is null)
-        {
-            return;
-        }
         await UIHelper.Flip(Vm);
     }
 

+ 16 - 0
src/PicView.Avalonia/UI/UIHelper.cs

@@ -379,7 +379,23 @@ namespace PicView.Avalonia.UI
                 }
             });
         }
+        
+        public static async Task RotateLeft(MainViewModel? vm)
+        {
+            if (vm is null)
+            {
+                return;
+            }
+
+            if (GalleryFunctions.IsFullGalleryOpen)
+            {
+                return;
+            }
+            await Dispatcher.UIThread.InvokeAsync(() => { vm.ImageViewer.Rotate(true); });
+        }
 
         #endregion Navigation
+
+
     }
 }

+ 8 - 3
src/PicView.Core/ImageDecoding/EXIFHelper.cs

@@ -30,10 +30,8 @@ public static class EXIFHelper
     // 6 = 90 degrees
     // 7 = 90 degrees, flipped
     // 8 = 270 degrees, flipped
-    public static EXIFOrientation GetImageOrientation(string filePath)
+    public static EXIFOrientation GetImageOrientation(MagickImage magickImage)
     {
-        using var magickImage = new MagickImage();
-        magickImage.Ping(filePath);
         var profile = magickImage.GetExifProfile();
 
         var orientationValue = profile?.GetValue(ExifTag.Orientation);
@@ -56,6 +54,13 @@ public static class EXIFHelper
         };
     }
     
+    public static EXIFOrientation GetImageOrientation(string filePath)
+    {
+        using var magickImage = new MagickImage();
+        magickImage.Ping(filePath);
+        return GetImageOrientation(magickImage);
+    }
+    
     public static EXIFOrientation GetImageOrientation(FileInfo fileInfo)
     {
         return GetImageOrientation(fileInfo.FullName);