diff options
Diffstat (limited to 'Services')
| -rw-r--r-- | Services/IProcessor.cs | 9 | ||||
| -rw-r--r-- | Services/Resizer/IResizer.cs | 7 | ||||
| -rw-r--r-- | Services/Resizer/ImageMagickResizer.cs | 26 |
3 files changed, 42 insertions, 0 deletions
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); + } + } + } + } + } +} |
