summaryrefslogtreecommitdiff
path: root/Services/Resizer
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 /Services/Resizer
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 'Services/Resizer')
-rw-r--r--Services/Resizer/IResizer.cs7
-rw-r--r--Services/Resizer/ImageMagickResizer.cs26
2 files changed, 33 insertions, 0 deletions
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);
+ }
+ }
+ }
+ }
+ }
+}