I have compress method which is uses SixLabors.ImageSharp. When i compress a image on that method, its getting more size before then i upload it. The image i upload is 2,03 mb
and when its come out from the compression method, its getting like that 4,54 mb
and here it's my compression method :
public async Task<FileRepo> FileUploadToDatabase(List<IFormFile> files)
{
foreach (var file in files)
{
var fileName = Path.GetFileNameWithoutExtension(file.FileName);
var fileExtension = Path.GetExtension(file.FileName);
using var image = Image.Load(file.OpenReadStream());
IImageEncoder imageEncoderForJpeg = new JpegEncoder()
{
Quality = 80,
};
IImageEncoder imageEncoderForPng = new PngEncoder()
{
CompressionLevel = PngCompressionLevel.Level9,
};
_fileRepo = new FileRepo
{
FileName = fileName,
FileExtension = fileExtension,
FileType = file.ContentType,
CreatedDate = DateTime.Now
};
using (var ms = new MemoryStream())
{
if (fileExtension == ".png")
{
image.Save(ms, imageEncoderForPng);
}
if (fileExtension == ".JPEG" || fileExtension == ".jpg")
{
image.Save(ms, imageEncoderForJpeg);
}
await file.CopyToAsync(ms);
_fileRepo.FileData = ms.ToArray();
}
}
return _fileRepo;
}
i dont know whats wrong with that method , it should be less size then first one right ? let me know if that question is duplicate.