23 lines
764 B
C#
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;
|
|
}
|
|
} |