transactions
This commit is contained in:
23
back/services/engine/ImageResizer/ImageResizer.cs
Normal file
23
back/services/engine/ImageResizer/ImageResizer.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user