【发布时间】:2020-02-04 14:07:02
【问题描述】:
我有一个问题,我正在 net core 中创建一个应用程序来上传孩子信息,但是,主要问题是我拥有的所有图像都来自我的手机,而且你知道我们在谈论 9-15每张图片 MB,所以,我知道我可以告诉用户“有一个限制”,但是,我认为它没有用,所以,有一种方法可以减小图像的大小而降低质量吗?。
这是我的方法
类
public IFormFile ImageFile { get; set; }
方法
if (vm.ImageFile != null && vm.ImageFile.Length > 0)
{
var guid = Guid.NewGuid().ToString();
var file = $"{guid}.jpg";
path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images\\Kids", file);
using (var stream = new FileStream(path, FileMode.Create))
{
//var convertedImage = MagicSolutionGivenByTheAwsomeStackOverFlowCommunity
await vm.ImageFile.CopyToAsync(stream);
}
}
布局
<form asp-action="Create" enctype="multipart/form-data">
<input type="hidden" asp-for="Imagen"/>
<div class="col-sm-4">
<label asp-for="Imagen" class="control-label"></label>
<div>
<input asp-for="ImageFile" class="form-control filestyle"
type="file" data-classbutton="btn btn-secondary"
data-classinput="form-control inline"
data-icon="<span class='fa fa-upload mr'></span>" />
</div>
<span asp-validation-for="Imagen" class="text-danger"></span>
</div>
</form>
【问题讨论】:
-
例如JPEG压缩...
-
emm,是的,例如 jpg
-
也许可以看看 ImageSharp for .Net Core (github.com/SixLabors/ImageSharp)。他们在第一页上有一个图像调整大小的示例。您用于调整大小的确切方法取决于您希望如何做到这一点(百分比、固定大小等)。
-
Here你可以查到资料
-
当您的服务器后端代码获取图像时它已经在服务器上。你应该回答的问题,至少对你自己来说,是为什么你首先会受到限制。如果要限制发送到您的服务器的数据量,您还应该检查限制客户端,并且任何压缩以减少该数量都需要在发送之前在客户端完成。如果重点是减少存储的数据量,那么您可以在服务器端进行。
标签: c# asp.net asp.net-core .net-core