首页 > 解决方案 > 如何在上传时调整图像大小以减小图像大小?

问题描述

我正在尝试在将图像保存到服务器之前调整它们的大小。我想在图像到达服务器之前减小它的大小。在这里,我上传了多个用“;”分隔的图像。

public async Task<IActionResult> Create(Venue v){

var files = HttpContext.Request.Form.Files;
 foreach (var Image in files)
     {
       if (Image != null && Image.Length > 0)
          {
            var file = Image;
            var filename = file.FileName;
            var uploads = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/venue");
                    if (file.Length > 0)
                    {
                     using (var fileStream = new FileStream(Path.Combine(uploads,filename),FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                            v.Image = v.Image + ";" + filename;
                        }
                     }
           }
       }

            _context.Venues.Add(v);
            _context.SaveChanges();
            return RedirectToAction(nameof(Index));
        }

标签: c#asp.netmodel-view-controller.net-core

解决方案


你可以试试。使用 System.Drawing;

    public static Image resizeImage(IFormFile imgToResize, int newWidth)
    {
        Image image = Image.FromStream(imgToResize.OpenReadStream(), true, true);
        Size size = new Size()
        {
            Width = newWidth,
            Height = newWidth //(image.Height * newWidth) / image.Width 
        };
        return new Bitmap(image, size);
    }

推荐阅读