Files
mmorales.photo/back/services/engine/ImageResizer/ImageResizer.cs
2025-08-24 14:18:20 +02:00

23 lines
764 B
C#

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
namespace back.services.engine.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;
}
}