【问题标题】:How do i resize images on Upload to reduce the image size?如何在上传时调整图像大小以减小图像大小?
【发布时间】:2020-06-14 09:05:40
【问题描述】:

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

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));
        }

【问题讨论】:

  • 您能否举一个您尝试过但不起作用的示例 - 因为显然您没有在此代码中调整大小。
  • 这能回答你的问题吗? ASP.NET Image uploading with Resizing
  • 不,我删除了代码,因为在我的情况下没有任何效果。
  • 鉴于对于这种情况有一个公认的答案,您确实需要提供您尝试使用该解决方案时发生的错误或其他问题。
  • 如果您未能提供足够的实际问题背景信息,我们将无法帮助您。

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


【解决方案1】:

你可以试试。 使用 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);
    }

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    相关资源
    最近更新 更多