Exemplo n.º 1
0
        //
        // 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);
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
        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");
        }