diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2019-12-24 16:45:22 +0100 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2019-12-24 16:45:22 +0100 |
| commit | fbe866f7b26c10bb54d72c029f8c628988a90be2 (patch) | |
| tree | 7617f1209333ff40c31aa156d541e8ea59e991ed /Models/ImageModel.cs | |
| parent | 0f98b398520a3f5cc6a299e7fd3b8fab494480d7 (diff) | |
| download | avalar-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.cs | 56 |
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; + } + } +} |
