using SixLabors.ImageSharp; using SixLabors.ImageSharp.Processing; namespace back.services.ImageResizer; public sealed class ImageResizer : IImageResizer { public async Task ResizeImage(IFormFile image, int maxRes) { if (image == null || image.Length == 0) { throw new ArgumentException("Invalid image file."); } using var inputStream = image.OpenReadStream(); using var outputStream = new MemoryStream(); using var img = Image.Load(inputStream); img.Mutate(x => x.Resize(new ResizeOptions { Size = new Size(maxRes, 0), Mode = ResizeMode.Max })); await img.SaveAsWebpAsync(outputStream); outputStream.Position = 0; return outputStream; } }