summaryrefslogtreecommitdiff
path: root/Models/ImageModel.cs
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2019-12-24 16:45:22 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2019-12-24 16:45:22 +0100
commitfbe866f7b26c10bb54d72c029f8c628988a90be2 (patch)
tree7617f1209333ff40c31aa156d541e8ea59e991ed /Models/ImageModel.cs
parent0f98b398520a3f5cc6a299e7fd3b8fab494480d7 (diff)
downloadavalar-fbe866f7b26c10bb54d72c029f8c628988a90be2.tar.gz
avalar-fbe866f7b26c10bb54d72c029f8c628988a90be2.tar.bz2
avalar-fbe866f7b26c10bb54d72c029f8c628988a90be2.zip
Started on the resizing step of the pipeline + pipeline design.
Diffstat (limited to 'Models/ImageModel.cs')
-rw-r--r--Models/ImageModel.cs56
1 files changed, 56 insertions, 0 deletions
diff --git a/Models/ImageModel.cs b/Models/ImageModel.cs
new file mode 100644
index 0000000..e0bb1af
--- /dev/null
+++ b/Models/ImageModel.cs
@@ -0,0 +1,56 @@
+using Avalar.Models.Interfaces;
+using Avalonia.Media.Imaging;
+using ReactiveUI;
+using System;
+
+namespace Avalar.Models
+{
+ public class ImageModel : ReactiveObject, IImageModel, ISettingsModel, IDisposable
+ {
+
+ private IBitmap m_OriginalBitmap;
+
+ private IBitmap m_LatestResult;
+
+ private double m_Width;
+ public double Width {
+ get => m_Width;
+ set => this.RaiseAndSetIfChanged(ref m_Width, value);
+ }
+
+ private double m_Height;
+ public double Height
+ {
+ get => m_Height;
+ set => this.RaiseAndSetIfChanged(ref m_Height, value);
+ }
+
+ public IBitmap LoadImage(string imagePath)
+ {
+ m_OriginalBitmap = new Bitmap(imagePath);
+ m_LatestResult = m_OriginalBitmap;
+ return m_LatestResult;
+ }
+
+ private bool disposed = false;
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ protected virtual void Dispose(bool disposing)
+ {
+ if (disposed) return;
+
+ if (disposing)
+ {
+ m_OriginalBitmap.Dispose();
+ m_LatestResult.Dispose();
+ }
+
+ disposed = true;
+ }
+ }
+}