asp.net-core - SixLabors.ImageSharp 压缩图像使图像变大为一个字节
问题描述
我有使用 SixLabors.ImageSharp 的压缩方法。当我使用该方法压缩图像时,它会在我上传之前变得更大。我上传的图片是 2,03 mb
这是我的压缩方法:
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;
}
我不知道那个方法有什么问题,它应该比第一个更小吧?让我知道该问题是否重复。
解决方案
推荐阅读
- php - 带有 fetch Eager 的两个字段的 Doctrine 实体
- drag-and-drop - svelte on drop 事件没有被调用
- android - 将 Google Play 游戏服务添加到现有应用程序
- docker - 如何使用 dockerized Prometheus(和 Grafana)监控 ASP.Net Core 应用程序?
- python - 程序计算最大数量的组合以除数而没有余数
- http - 如何设计两台服务器之间的 HTTP 请求消息
- python - 检查某个布尔值是否连续出现
- java - Hadoop MapReduce ClassNotFound 异常,虽然它在 HADOOP_CLASSPATH 中
- javascript - [TypeError:null 不是对象(评估'DirectSms.sendDirectSms')]
- ruby-on-rails - Rails 查询优化,做错了吗?