示例#1
0
        public void GenerateUpdate(ThrumbneilSize size)
        {
            List <Thrumbneil> Thrumbneils = new List <Thrumbneil>();

            foreach (Thrumbneil i in size.ThrumbneilSizes)
            {
                //Выгрузить в переменную картинку в байтах
                byte[] CreateImage = File.ReadAllBytes("wwwroot\\" + i.Path.Substring(3));
                //Удалить картинку по адресу
                FileInfo Info = new FileInfo("wwwroot\\" + i.Path.Substring(3));
                Info.Delete();
                //Назначить новый путь и имя картинке
                int    Namb    = i.Name.IndexOf("_");
                string NewName = i.Name.Substring(0, Namb + 1);
                NewName += size.NameSize + ".jpeg";
                i.Name   = NewName;
                int    Namb1   = i.Path.IndexOf("_");
                string NewPath = i.Path.Substring(0, Namb1 + 1);
                NewPath += size.NameSize + ".jpeg";
                i.Path   = NewPath;
                //Записать по новому пути и с новым именем
                using (imag.Image <imag.PixelFormats.Rgba32> image = imag.Image.Load(CreateImage))
                {
                    image.Mutate(x => x.Resize(size.Width, size.Height));
                    image.Save("wwwroot\\" + i.Path.Substring(3));
                }
            }
        }
示例#2
0
        public IActionResult RemoveSize(ThrumbneilSize size)
        {
            var Sizes = ImageSizeRepository.GetAll().Single(s => s.Id == size.Id);

            if (Sizes.ThrumbneilSizes != null)
            {
                foreach (Thrumbneil i in Sizes.ThrumbneilSizes)
                {
                    FileInfo Info = new FileInfo("wwwroot\\" + i.Path.Substring(1));
                    Info.Delete();
                }

                ImageSizeRepository.Remove(Sizes);
                ImageSizeRepository.Save();
            }
            return(RedirectToAction("Size"));
        }
示例#3
0
        public IActionResult Save(ThrumbneilSize size, bool Check)
        {
            var chec = Request.Form["Check"];

            //Создать новый размер
            if (size.Id == 0)
            {
                if (chec.Count == 0)
                {
                    ImageUploader up = new ImageUploader(new ImageGenerator(), ImageSizeRepository, ImageRepository);
                    up.TrumbneilsCreate(size);
                }
                else
                {
                    ImageSizeRepository.Add(size);
                    ImageSizeRepository.Save();
                }
            }
            //Изменить существующий
            else
            {
                ThrumbneilSize Size = ImageSizeRepository.GetAll().FirstOrDefault(s => s.Id == size.Id);
                if (Size != null)
                {
                    Size.Height   = size.Height;
                    Size.Width    = size.Width;
                    Size.NameSize = size.NameSize;
                }
                ImageUploader up = new ImageUploader(new ImageGenerator(), ImageSizeRepository, ImageRepository);

                if (Size.ThrumbneilSizes != null)
                {
                    up.TrumbnailsUpdate(Size);
                    ImageSizeRepository.Save();
                }
            }

            return(RedirectToAction("Size"));
            // return RedirectToAction("Size");
        }
示例#4
0
        public List <Thrumbneil> GenerateCreate(List <Image> Images, ThrumbneilSize size, string PathFile)
        {
            List <Thrumbneil> Thrumbneils = new List <Thrumbneil>();

            foreach (Image i in Images)
            {
                string FileMiny    = DateTime.Now.ToBinary().ToString() + "_" + size.Width + "_" + size.Height + ".jpeg";
                string Path        = ".." + PathFile.Substring(18) + FileMiny; //Заменить в срочном порядке
                byte[] CreateImage = File.ReadAllBytes(PathFile + i.Name);
                using (imag.Image <imag.PixelFormats.Rgba32> image = imag.Image.Load(CreateImage))
                {
                    image.Mutate(x => x.Resize(size.Width, size.Height));
                    image.Save(PathFile + FileMiny);
                }
                Thrumbneil trumbneil = new Thrumbneil()
                {
                    Path = Path, Name = FileMiny
                };
                Thrumbneils.Add(trumbneil);
            }
            return(Thrumbneils);
        }
示例#5
0
        public void TrumbneilsCreate(ThrumbneilSize size)
        {
            ThrumbneilSize Size = new ThrumbneilSize();

            Size          = size;
            Size.NameSize = Size.Width + "_" + Size.Height;

            var Images = ImageRepository.GetAll().ToList();

            if (Images.Count != 0)
            {
                List <Thrumbneil> Trumbneils = ImageGenerator.GenerateCreate(Images, size, GenerateFilePath());
                var Images1 = ImageRepository.GetAll().ToList();
                for (int i = 0; i < Trumbneils.Count(); i++)
                {
                    Trumbneils[i].ThrumbneilSize = Size;
                    if (Images1[i].Thrumbneils != null)
                    {
                        Images1[i].Thrumbneils.Add(Trumbneils[i]);
                    }
                    else
                    {
                        Images1[i].Thrumbneils = new List <Thrumbneil>();
                        Images1[i].Thrumbneils.Add(Trumbneils[i]);
                    }
                }
            }
            else
            {
                ImageSizeRepository.Add(Size);
            }

            //ImageSizeRepository.Add(Size);
            ImageSizeRepository.Save();

            //ImageSizeRepository.Add(Size);
        }
示例#6
0
        public IActionResult Edit(int id)
        {
            ThrumbneilSize thrumbneilSize = ImageSizeRepository.Context.ThrumbneilSizes.FirstOrDefault(i => i.Id == id);

            return(View(thrumbneilSize));
        }
示例#7
0
 public void Remove(ThrumbneilSize thrumbneilSize)
 {
     Context.Remove(thrumbneilSize);
 }
示例#8
0
 public void Add(ThrumbneilSize thrumbneilSize)
 {
     Context.ThrumbneilSizes.Add(thrumbneilSize);
 }
示例#9
0
 public void TrumbnailsUpdate(ThrumbneilSize size)
 {
     size.NameSize = size.Width + "_" + size.Height;
     ImageGenerator.GenerateUpdate(size);
 }