
This article was written in 2019. Versions, tools and recommendations may have changed since then. Newer posts are collected under Blog.
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

- 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.
