
To resize images like PNG, JPEG, JPG and Co using .NET Core, there is no SDK support available today.
But the Microsoft Mono team has written a wrapper named SkiaSharp based on the Google library Skia , which works wonderfully and fast - but unfortunately a bit complex. The documentation can also be improved.
Snippet
Here is my snippet to resize images width SkiaSharp
1 public class SkiaSharpImageManipulationProvider : IImageManipulationProvider
2 {
3 public (byte[] FileContents, int Height, int Width) Resize(byte[] fileContents,
4 int maxWidth, int maxHeight,
5 SKFilterQuality quality = SKFilterQuality.Medium)
6 {
7 using MemoryStream ms = new MemoryStream(fileContents);
8 using SKBitmap sourceBitmap = SKBitmap.Decode(ms);
9
10 int height = Math.Min(maxHeight, sourceBitmap.Height);
11 int width = Math.Min(maxWidth, sourceBitmap.Width);
12
13 using SKBitmap scaledBitmap = sourceBitmap.Resize(new SKImageInfo(width, height), quality);
14 using SKImage scaledImage = SKImage.FromBitmap(scaledBitmap);
15 using SKData data = scaledImage.Encode();
16
17 return (data.ToArray(), height, width);
18 }
19 }
Related articles
Nov 18, 2018 · 1 min read
HTTP Status 500 on debugging ASP.NET Core with Visual Studio 2017
I gave my PC a new Windows installation and run into the following error: Unable to start process C:\Program Files\dotnet\dotnet.exe. The …
Let's Work Together
Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.

Comments