Files
mmorales.photo/back/services/ImageResizer/ImageResizer.cs

23 lines
757 B
C#

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
namespace back.services.ImageResizer;
public sealed class ImageResizer : IImageResizer
{
public async Task<Stream> 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;
}
}