Nic*_*eer 6 asp.net-4.6 asp.net-core
如何获取上传图像的文件流(IFormFile
)并调整其大小?
public ActionResult Upload(IFormFile file)
{
using (var reader = new StreamReader(file.OpenReadStream()))
{
var fileContent = reader.ReadToEnd();
var parsedContentDisposition = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
//scale image here?
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用IFormFile.OpenReadStream()
获取流,然后只需将流插入到Image
.对于这个例子,我把它缩放到1024x768.
Image image = Image.FromStream(file.OpenReadStream(), true, true);
var newImage = new Bitmap(1024, 768);
using (var g = Graphics.FromImage(newImage))
{
g.DrawImage(image , 0, 0, 1024, 768);
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用newImage
保存或执行任何操作.
小智 6
从 nuget 安装:Install-Package SixLabors.ImageSharp
[HttpPost]
public IActionResult Upload(IFormFile file)
{
//Better use extension method
string fileName;
string customRoot = "wwwroot\\Upload\\";
Directory.CreateDirectory(customRoot);
var path = Path.Combine(Directory.GetCurrentDirectory(), customRoot,fileName);
using var image = Image.Load(file.OpenReadStream());
//100: height
//100: width
image.Mutate(x => x.Resize(100, 100));
image.Save(path);
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息: https://blog.elmah.io/upload-and-resize-an-image-with-asp-net-core-and-imagesharp/
归档时间: |
|
查看次数: |
11165 次 |
最近记录: |