如何改变分辨率或降低尺寸的图像
问题描述:
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;
}
}
}
}
}
}
答
检查,并相应地改变下面的代码可以帮助你;)
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);
(path.PostedFile.InputStream)不工作ü可以帮助兄弟 –
你能检查添加以下代码 FileUpload MyFile = new FileUpload(); MyFile = Path; System.Drawing.Image imageToBeResized = System.Drawing.Image.FromStream(MyFile.PostedFile.InputStream); –
Myfile = path;给了我错误如何将路径转换为myfile –