public ResultProcessImageDTO AddEffectoImagen(ProcessDataImageDTO processDataImage)
        {
            ResultProcessImageDTO resultProcessImage = new ResultProcessImageDTO();

            resultProcessImage.TipoEffecto = processDataImage.TipoEffecto;

            string Base64String = processDataImage.ImagenBase64.Replace("data:image/png;base64,", "");

            byte[] bytes = Convert.FromBase64String(Base64String);
            Image  image;

            using (MemoryStream ms = new MemoryStream(bytes))
            {
                image = Image.FromStream(ms);

                if (processDataImage.Alto.HasValue && processDataImage.Ancho.HasValue)
                {
                    image = _processEffectsImageProvider.RedimencionarImagen(image, (int)processDataImage.Alto, (int)processDataImage.Ancho);
                }
            }


            switch (processDataImage.TipoEffecto)
            {
            case Core.Enums.TipoEffecto.Sepia:
                image = _processEffectsImageProvider.ProcesarTonoSepia(image);
                break;

            case Core.Enums.TipoEffecto.Trasnparencia:
                image = _processEffectsImageProvider.ProcesarTransparecia(image);
                break;

            case Core.Enums.TipoEffecto.Negativo:
                image = _processEffectsImageProvider.ProcesarNegativa(image);
                break;

            case Core.Enums.TipoEffecto.EscalaGris:
                image = _processEffectsImageProvider.ProcesarEscalaGrises(image);
                break;
            }

            //TODO aun no se esta usando el enum de nuestro sistema del formato
            string imagenbase64 = _processEffectsImageProvider.ImagenToBase64(image, ImageFormat.Png);

            resultProcessImage.ImagenProcesadaBase64 = imagenbase64;

            return(resultProcessImage);
        }
예제 #2
0
        public IActionResult AgregarTonalidadesAImagenes([FromBody] ProcessImagesInputDTO processImagesInput)
        {
            List <ResultProcessImageDTO> resultProcessImages = new List <ResultProcessImageDTO>();
            //mapeo mi dto de entrada del api a uno que necesaita el servicio
            ProcessDataImageDTO processDataImage = _mapper.Map <ProcessDataImageDTO>(processImagesInput);

            //recorro los efectos ya que la demas data< es igul para todo
            processImagesInput.TiposEffectos.ForEach(z =>
            {
                processDataImage.TipoEffecto             = z;
                ResultProcessImageDTO resultProcessImage = _effectImageService.AddEffectoImagen(processDataImage);
                resultProcessImages.Add(resultProcessImage);
            });

            return(Ok(resultProcessImages));
        }
예제 #3
0
        public IActionResult AgregarEfectoTono([FromBody] ProcessDataImageDTO processDataImage)
        {
            ResultProcessImageDTO resultProcessImage = _effectImageService.AddEffectoImagen(processDataImage);

            return(Ok(resultProcessImage));
        }