// // GET: /Image/ public ActionResult Index() { ImageViewModel viewModel = new ImageViewModel(); string mapPath = Server.MapPath("/Content/"); string imageDir = "Uploads/Images/"; string originalImageName = "original.jpg"; string resizeImageName = "resized.jpg"; string cropImageName = "cropped.jpg"; if (this.IsImageExist(viewModel, originalImageName)) { viewModel.IsOriginalImageExist = true; viewModel.OriginalImagePath = "/Content/" + imageDir + originalImageName; string imagePath = Server.MapPath("/Content/" + imageDir + originalImageName); var image = Image.FromFile(imagePath); viewModel.OriginalSize = new Size(image.Width, image.Height); image.Dispose(); } else viewModel.IsOriginalImageExist = false; if (this.IsImageExist(viewModel, resizeImageName)) { viewModel.IsResizeImageExist = true; viewModel.ResizeImagePath = "/Content/" + imageDir + resizeImageName; string imagePath = Server.MapPath("/Content/" + imageDir + resizeImageName); var image = Image.FromFile(imagePath); viewModel.ResizeSize = new Size(image.Width, image.Height); image.Dispose(); } else viewModel.IsOriginalImageExist = false; if (this.IsImageExist(viewModel, cropImageName)) { viewModel.IsCropImageExist = true; viewModel.CropImagePath = "/Content/" + imageDir + cropImageName; string imagePath = Server.MapPath("/Content/" + imageDir + cropImageName); var image = Image.FromFile(imagePath); viewModel.CropSize = new Size(image.Width, image.Height); image.Dispose(); } else viewModel.IsCropImageExist = false; viewModel.ImageQuality = 100L; return View(viewModel); }
public ActionResult Crop(ImageViewModel viewModel) { viewModel.AttemptedSize = new Size(viewModel.AttemptedWidth, viewModel.AttemptedHeight); if (viewModel.AttemptedSize.IsEmpty) return RedirectToAction("Index"); string imageDir = "Uploads/Images/"; string originalImageName = "original.jpg"; string imagePath = Server.MapPath("/Content/" + imageDir + originalImageName); using (var image = Image.FromFile(imagePath)) { using (var ms = new MemoryStream()) { image.Save(ms, ImageFormat.Jpeg); var img = new Imagery(ms.ToArray(), ImageFormat.Jpeg); image.Dispose(); var imgEdit = new ImageManipulator(); img.SetCroppingCoordinates(viewModel.XCoordinate, viewModel.YCoordinate, viewModel.AttemptedSize.Width, viewModel.AttemptedSize.Height); byte[] imageCropByte; string error; if (imgEdit.GetCroppedImageByte(img, out imageCropByte, out error)) { byte[] optimizeImg = imgEdit.OptimizeImage(new MemoryStream(imageCropByte), ImageFormat.Jpeg, viewModel.ImageQuality); using (var newImageStream = new MemoryStream(optimizeImg)) { using (var newImage = Image.FromStream(newImageStream)) { string mapPath = Server.MapPath("/Content/"); string cropName = "cropped.jpg"; var fileInfo = new FileInfo(mapPath + imageDir + cropName); fileInfo.Delete(); newImage.Save(mapPath + imageDir + cropName); } } } } } return RedirectToAction("Index"); }
private bool IsImageExist(ImageViewModel viewModel, string fileName) { string mapPath = Server.MapPath("/Content/"); string imageDir = "Uploads/Images/"; var imagefiles = new DirectoryInfo(mapPath + imageDir).GetFiles("*.jpg"); if (imagefiles.Count() > 0) { List<string> imageFileNames = new List<string>(); foreach (var item in imagefiles) { imageFileNames.Add(item.Name); } if (imageFileNames.Contains(fileName)) { return true; } } return false; }
public ActionResult Index(ImageViewModel viewModel) { var imageStream = viewModel.UploadFileImage.InputStream; string mapPath = Server.MapPath("/Content/"); string imageDir = "Uploads/Images/"; string originalName = "original.jpg"; int widthLimit = 650; using (var image = Image.FromStream(imageStream)) { if (this.IsImageExist(viewModel, originalName)) { var fileInfo = new FileInfo(mapPath + imageDir + originalName); fileInfo.Delete(); byte[] resizeByte; string error; var img = new Imagery(imageStream, ImageFormat.Jpeg); var imgEdit = new ImageManipulator(); img.SetResize(widthLimit); if (imgEdit.GetResizedImageByte(img, out resizeByte, out error)) { using (var ms = new MemoryStream(resizeByte)) { var newImage = Image.FromStream(ms); newImage.Save(mapPath + imageDir + originalName); newImage.Dispose(); return RedirectToAction("Index"); } } } image.Save(mapPath + imageDir + originalName); } return RedirectToAction("Index"); }