public ActionResult EditaFormatiRidimensiona(int id, int formatoImmagineID, int w, int h) { ActionResult result = null; Immagine immagineMaster = null; immagineMaster = ImmagineRepository.Instance.RecuperaImmagine(id); if (immagineMaster != null) { FormatoImmagine formato = FormatoImmagineRepository.Instance.RecuperaFormatoImmagine(formatoImmagineID); Immagine immagine = null; immagine = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagineMaster.ID).FirstOrDefault(x => x.FormatoImmagine.ID == formato.ID); Bitmap immagineLavoro = null; Bitmap immagineRidimensionata = null; Graphics grpImmagineRidimensionata = null; Rectangle rettangoloRidimensionata; immagineLavoro = new Bitmap(FileUtility.VAImmagineLavoro(immagineMaster.NomeFile)); rettangoloRidimensionata = new Rectangle(0, 0, w, h); immagineRidimensionata = new Bitmap(w, h); grpImmagineRidimensionata = Graphics.FromImage((System.Drawing.Image)immagineRidimensionata); grpImmagineRidimensionata.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; grpImmagineRidimensionata.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; grpImmagineRidimensionata.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; grpImmagineRidimensionata.DrawImage((System.Drawing.Image)immagineLavoro, rettangoloRidimensionata); grpImmagineRidimensionata.Dispose(); string ext = System.IO.Path.GetExtension(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile)).ToLower(); switch (ext) { case ".jpeg": case ".jpg": immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat); break; case ".gif": immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat); break; case ".png": immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat); break; case ".bmp": immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat); break; default: throw new ApplicationException("Formato immagine non supportato: " + ext); } immagineLavoro.Dispose(); ContenutoService cs = new ContenutoService(); if (immagine != null) { immagine.NomeFile = immagineMaster.NomeFile; } else { immagine = cs.CreaImmagine(immagineMaster, formato, immagineMaster.NomeFile); } immagine.Larghezza = immagineRidimensionata.Width; immagine.Altezza = immagineRidimensionata.Height; immagineRidimensionata.Dispose(); cs.SalvaImmagine(immagine); result = RedirectToAction("EditaFormati", new { id = immagineMaster.ID, formatoImmagineID = formato.ID }); } else { result = RedirectToAction("Index"); } return(result); }
public ActionResult Edita(ImmagineEditaModel model) { ActionResult result = null; if (model.ID == 0 && ModelState.IsValidField("EditaFileImmagine")) { if (model.EditaFileImmagine == null || model.EditaFileImmagine.ContentLength == 0) { ModelState.AddModelError("EditaFileImmagine", "Immagine obbligatoria."); } } if (ModelState.IsValid) { int id = 0; Immagine immagine = null; ContenutoService cs = new ContenutoService(); if (model.ID != 0) { if (model.EditaFileImmagine != null) { immagine = ImmagineRepository.Instance.RecuperaImmagine(model.ID); string nomeFile = string.Format("{0}{1}", immagine.ID, System.IO.Path.GetExtension(model.EditaFileImmagine.FileName)); FileUtility.VASalvaImmagine(immagine.FormatoImmagine.Enum, nomeFile, model.EditaFileImmagine); immagine.NomeFile = nomeFile; immagine.Nome_IT = model.EditaNome_IT.Trim(); immagine.Nome_EN = model.EditaNome_EN.Trim(); Bitmap immagineMaster = new Bitmap(FileUtility.VAImmagine(immagine.FormatoImmagine.Enum, nomeFile)); immagine.Altezza = immagineMaster.Height; immagine.Larghezza = immagineMaster.Width; immagineMaster.Dispose(); } else { immagine = ImmagineRepository.Instance.RecuperaImmagine(model.ID); immagine.Nome_IT = model.EditaNome_IT.Trim(); immagine.Nome_EN = model.EditaNome_EN.Trim(); } } else { immagine = cs.CreaImmagineMaster(model.EditaNome_IT.Trim(), model.EditaNome_EN.Trim(), "temp.file"); } id = cs.SalvaImmagine(immagine); immagine = ImmagineRepository.Instance.RecuperaImmagine(id); if (model.ID == 0) { string nomeFile = string.Format("{0}{1}", immagine.ID, System.IO.Path.GetExtension(model.EditaFileImmagine.FileName)); FileUtility.VASalvaImmagine(immagine.FormatoImmagine.Enum, nomeFile, model.EditaFileImmagine); Bitmap immagineMaster = new Bitmap(FileUtility.VAImmagine(immagine.FormatoImmagine.Enum, nomeFile)); //immagineMaster.Save(FileUtility.VAImmagineLavoro(nomeFile)); immagine.NomeFile = nomeFile; immagine.Altezza = immagineMaster.Height; immagine.Larghezza = immagineMaster.Width; immagineMaster.Dispose(); cs.SalvaImmagine(immagine); } else { List <Immagine> immaginiCollegate = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagine.ID); foreach (Immagine immagineCollegata in immaginiCollegate) { immagineCollegata.Nome_IT = immagine.Nome_IT; immagineCollegata.Nome_EN = immagine.Nome_EN; cs.SalvaImmagine(immagineCollegata); } } result = RedirectToAction("Edita", new { id = id }); } else { if (model.ID != 0) { model.Immagine = ImmagineRepository.Instance.RecuperaImmagine(model.ID); } result = View(model); } return(result); }
public ActionResult EditaFormatiTaglia(int id, int formatoImmagineID, int x1 = 0, int y1 = 0, int x2 = 0, int y2 = 0, int w = 0, int h = 0) { ActionResult result = null; Immagine immagineMaster = null; immagineMaster = ImmagineRepository.Instance.RecuperaImmagine(id); if (immagineMaster != null) { FormatoImmagine formato = FormatoImmagineRepository.Instance.RecuperaFormatoImmagine(formatoImmagineID); Immagine immagine = null; immagine = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagineMaster.ID).FirstOrDefault(x => x.FormatoImmagine.ID == formato.ID); Bitmap immagineLavoro = null; ImageFormat format = null; Bitmap immagineRisultato = null; immagineLavoro = new Bitmap(FileUtility.VAImmagineLavoro(immagineMaster.NomeFile)); format = immagineLavoro.RawFormat; immagineRisultato = ImageHelper.Ritaglia(immagineLavoro, x1, y1, x2, y2); if (immagineRisultato != null) { immagineLavoro.Dispose(); immagineLavoro = immagineRisultato; } immagineRisultato = ImageHelper.Ridimensiona(immagineLavoro, w, h); if (immagineRisultato != null) { immagineLavoro.Dispose(); } else { immagineRisultato = immagineLavoro; } immagineLavoro = null; string ext = System.IO.Path.GetExtension(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile)).ToLower(); switch (ext) { case ".jpeg": case ".jpg": immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format); break; case ".gif": immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format); break; case ".png": immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format); break; case ".bmp": immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format); break; default: throw new ApplicationException("Formato immagine non supportato: " + ext); } ContenutoService cs = new ContenutoService(); if (immagine != null) { immagine.NomeFile = immagineMaster.NomeFile; } else { immagine = cs.CreaImmagine(immagineMaster, formato, immagineMaster.NomeFile); } immagine.Larghezza = immagineRisultato.Width; immagine.Altezza = immagineRisultato.Height; immagineRisultato.Dispose(); cs.SalvaImmagine(immagine); result = RedirectToAction("EditaFormati", new { id = immagineMaster.ID, formatoImmagineID = formato.ID }); } else { result = RedirectToAction("Index"); } return(result); }