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 | |
| 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')
| -rw-r--r-- | Models/ImageModel.cs | 56 | ||||
| -rw-r--r-- | Models/Interfaces/IImageModel.cs | 9 | ||||
| -rw-r--r-- | Models/Interfaces/SettingsModel.cs | 12 |
3 files changed, 77 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; + } + } +} diff --git a/Models/Interfaces/IImageModel.cs b/Models/Interfaces/IImageModel.cs new file mode 100644 index 0000000..897a221 --- /dev/null +++ b/Models/Interfaces/IImageModel.cs @@ -0,0 +1,9 @@ +using Avalonia.Media.Imaging; + +namespace Avalar.Models.Interfaces +{ + public interface IImageModel + { + IBitmap LoadImage(string imagePath); + } +} diff --git a/Models/Interfaces/SettingsModel.cs b/Models/Interfaces/SettingsModel.cs new file mode 100644 index 0000000..6149c1e --- /dev/null +++ b/Models/Interfaces/SettingsModel.cs @@ -0,0 +1,12 @@ + +using Avalonia; + +namespace Avalar.Models.Interfaces +{ + interface ISettingsModel + { + public double Width { get; set; } + + public double Height { get; set; } + } +} |
