From fbe866f7b26c10bb54d72c029f8c628988a90be2 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Tue, 24 Dec 2019 16:45:22 +0100 Subject: Started on the resizing step of the pipeline + pipeline design. --- Services/IProcessor.cs | 9 +++++++++ Services/Resizer/IResizer.cs | 7 +++++++ Services/Resizer/ImageMagickResizer.cs | 26 ++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 Services/IProcessor.cs create mode 100644 Services/Resizer/IResizer.cs create mode 100644 Services/Resizer/ImageMagickResizer.cs (limited to 'Services') diff --git a/Services/IProcessor.cs b/Services/IProcessor.cs new file mode 100644 index 0000000..11e83ab --- /dev/null +++ b/Services/IProcessor.cs @@ -0,0 +1,9 @@ +using Avalonia.Media.Imaging; + +namespace Avalar.Services +{ + public interface IProcessor + { + IBitmap Process(IBitmap bitmap); + } +} diff --git a/Services/Resizer/IResizer.cs b/Services/Resizer/IResizer.cs new file mode 100644 index 0000000..e71d4f1 --- /dev/null +++ b/Services/Resizer/IResizer.cs @@ -0,0 +1,7 @@ + +namespace Avalar.Services.Resizer +{ + public interface IResizer : IProcessor + { + } +} diff --git a/Services/Resizer/ImageMagickResizer.cs b/Services/Resizer/ImageMagickResizer.cs new file mode 100644 index 0000000..e48e576 --- /dev/null +++ b/Services/Resizer/ImageMagickResizer.cs @@ -0,0 +1,26 @@ + +using Avalonia.Media.Imaging; +using ImageMagick; +using System.IO; + +namespace Avalar.Services.Resizer +{ + public class ImageMagickResizer : IResizer + { + public IBitmap Process(IBitmap bitmap) + { + using (var stream = new MemoryStream()) + { + bitmap?.Save(stream); + using (var image = new MagickImage(stream)) + { + image.Resize(300, 300); + using (var stream2 = new MemoryStream()) + { + return new Bitmap(stream2); + } + } + } + } + } +} -- cgit v1.2.3-70-g09d2