如何更改分辨率或缩小图像大小

时间:2016-04-28 03:55:29

标签: asp.net

public ActionResult ChangeAvatar(CustomerModel customerModel)
{
    string CustomerID = "";
    if (Session["RoleID"] != null)
    {                
            CustomerID = Request.Form["CustomerID"];                            

        //string CustomerID = Request.Form["Customer.CustomerID"];
        if (CustomerID != null)
        {
            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];
                if (file != null && file.ContentLength > 0)
                {
                    //var fileName = Path.GetFileName(file.FileName);                        
                    var fileExtension = Path.GetExtension(file.FileName);
                    var allowedExtensions = new[] { ".bmp", ".png", ".jpg", "jpeg", ".gif" };
                    if (allowedExtensions.Contains(fileExtension))
                    {
                        //Delete files
                        var pathD = Server.MapPath("~/Avatar/1");
                        var images = Directory.GetFiles(pathD, CustomerID + ".*");
                        for (int i = 0; i < images.Length; i++)
                            System.IO.File.Delete(Server.MapPath(("~/Avatar/1/") + Path.GetFileName(images[i])));

                        //Up files
                        var fileName = CustomerID + fileExtension;
                        var path = Path.Combine(Server.MapPath("~/Avatar/1/"), fileName);


                        file.SaveAs(path);

                        //Session["Avatar"] = fileName;
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

检查并更改以下代码可能对您有所帮助;)

System.Drawing.Image imageToBeResized = System.Drawing.Image.FromStream(path.PostedFile.InputStream);
                int imageHeight = imageToBeResized.Height;
                int imageWidth = imageToBeResized.Width;
                int maxHeight = 400;
                int maxWidth = 400;
                imageHeight = (imageHeight * maxWidth) / imageWidth;
                imageWidth = maxWidth;

                if (imageHeight > maxHeight)
                    {
                    imageWidth = (imageWidth * maxHeight) / imageHeight;
                    imageHeight = maxHeight;
                    }

                Bitmap bitmap = new Bitmap(imageToBeResized, imageWidth, imageHeight);
                System.IO.MemoryStream stream = new MemoryStream();
                bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                stream.Position = 0;
                byte[] imasave = new byte[stream.Length + 1];
                stream.Read(imasave , 0, imasave.Length);


                file.SaveAs(imasave);