图片超过指定大小后等比例压缩图片
/// <summary> /// 压缩图片 /// </summary> /// <returns></returns> public string ResizePic() { #region 压缩图片开始 bool IsImgFile = true; //判断是否为图片文件 string filePathName = "123"; //文件存储的路径(文件夹名称) string fileName = "a.jpg"; //上传文件的原始名称 string fileSysName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + fileName; //修改后的文件名称 string filePath = ""; //文件路径 string strImgPath = "/fileupload/"; //上传路径 if (IsImgFile) { int maxWidth = 600; //图片宽度最大限制 int maxHeight = 400; //图片高度最大限制 System.Drawing.Image imgPhoto = System.Drawing.Image.FromFile(Server.MapPath(strImgPath) + filePathName + "/" + fileSysName); int imgWidth = imgPhoto.Width; int imgHeight = imgPhoto.Height; if (imgWidth > imgHeight) //如果宽度超过高度以宽度为准来压缩 { if (imgWidth > maxWidth) //如果图片宽度超过限制 { float toImgWidth = maxWidth; //图片压缩后的宽度 float toImgHeight = imgHeight / (float)(imgWidth / toImgWidth); //图片压缩后的高度 System.Drawing.Bitmap img = new System.Drawing.Bitmap(imgPhoto, (int)toImgWidth, (int)toImgHeight); string strResizePicName = Server.MapPath(strImgPath) + filePathName + "/_small_" + fileSysName; img.Save(strResizePicName); //保存压缩后的图片 filePath = strImgPath + filePathName + "/_small_" + fileSysName; //返回压缩后的图片路径 } } else { if (imgHeight > maxHeight) { float toImgHeight1 = maxHeight; float toImgWidth1 = imgWidth / (float)(imgHeight / toImgHeight1); System.Drawing.Bitmap img = new System.Drawing.Bitmap(imgPhoto, (int)toImgWidth1, (int)toImgHeight1); string strResizePicName = Server.MapPath(strImgPath) + filePathName + "/_small_" + fileSysName; img.Save(strResizePicName); filePath = strImgPath + filePathName + "/_small_" + fileSysName; } } } return filePath; #endregion }