Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }