/// <summary> /// Recibe una imagen y la retorna con un filtro del tipo negativo aplicado /// </summary> /// <param name="image">Imagen a la cual se le va a plicar el filtro.</param> /// <returns>Imagen con el filtro aplicado</returns> public IPicture Filter(IPicture image) { Debug.Assert(image != null); IPicture negativo = image.Clone(); for (int x = 0; x < negativo.Width; x++) { for (int y = 0; y < negativo.Height; y++) { Color colorOriginal = negativo.GetColor(x, y); byte rOriginal = colorOriginal.R; byte gOriginal = colorOriginal.G; byte bOriginal = colorOriginal.B; byte rNeg = Convert.ToByte(Math.Abs(rOriginal - byte.MaxValue)); byte gNeg = Convert.ToByte(Math.Abs(gOriginal - byte.MaxValue)); byte bNeg = Convert.ToByte(Math.Abs(bOriginal - byte.MaxValue)); Color colorNegativo; colorNegativo = Color.FromArgb(rNeg, gNeg, bNeg); negativo.SetColor(x, y, colorNegativo); } } return(negativo); }
/// <summary> /// Recibe una imagen y la retorna con un filtro del tipo inventado aplicado /// </summary> /// <param name="image">Imagen a la cual se le va a plicar el filtro.</param> /// <returns>Imagen con el filtro aplicado</returns> public IPicture Filter(IPicture image) { Debug.Assert(image != null); IPicture invento = image.Clone(); for (int x = 0; x < invento.Width; x++) { for (int y = 0; y < invento.Height; y++) { Color colorOriginal = invento.GetColor(x, y); byte rOriginal = colorOriginal.R; byte gOriginal = colorOriginal.G; byte bOriginal = colorOriginal.B; byte rNeg = Convert.ToByte(Math.Abs(rOriginal / 2)); byte gNeg = Convert.ToByte(Math.Abs(gOriginal / 10)); byte bNeg = Convert.ToByte(Math.Abs(bOriginal / 5)); var rand = new Random(); Color colorCualquiera; colorCualquiera = Color.FromArgb(rNeg, gNeg, bNeg); // colorCualquiera = Color.FromArgb(rNeg, gNeg, bNeg); invento.SetColor(x, y, colorCualquiera); } } return(invento); }
/// <summary> /// La cañería recibe una imagen, construye un duplicado de la misma, /// y envía la original por una cañería y el duplicado por otra. /// </summary> /// <param name="picture">imagen a filtrar y enviar a las siguientes cañerías</param> public IPicture Send(IPicture picture) { if (this.condition) { return(this.nextPipe.Send(picture)); } return(this.next2Pipe.Send(picture.Clone())); }
public IPicture Filter(IPicture image) { IPicture imagenFiltrada = image.Clone(); // delega la tarea a el componente this.pictureprovider.SavePicture(imagenFiltrada, path); return(imagenFiltrada); }
public IPicture Filter(IPicture image) { IPicture savePicture = image.Clone(); PictureProvider p = new PictureProvider(); p.SavePicture(savePicture, "NewImage.jpg"); return(savePicture); }
public IPicture Filter(IPicture image) { Count++; IPicture pic = image.Clone(); PictureProvider picSaved = new PictureProvider(); picSaved.SavePicture(pic, $@"FilteredImage{Count}.jpg"); return(pic); }
public IPicture Filter(IPicture image) { IPicture copy = image.Clone(); // Delegamos la tarea de guardar la imagen a la instancia de PictureProvider this.Provider.SavePicture(copy, this.path); return(this.Provider.GetPicture(this.path)); //return image; }
public IPicture Filter(IPicture image) { count++; IPicture savePicture = image.Clone(); PictureProvider p = new PictureProvider(); p.SavePicture(savePicture, $@"NewImage{count}.jpg"); return(savePicture); }
/// <summary> /// Recibe una imagen y la retorna con un filtro del tipo inventado aplicado /// </summary> /// <param name="image">Imagen a la cual se le va a plicar el filtro.</param> /// <returns>Imagen con el filtro aplicado</returns> public IPicture Filter(IPicture image) { Count++; Debug.Assert(image != null); IPicture saving = image.Clone(); PictureProvider p = new PictureProvider(); p.SavePicture(saving, $@"./../../images/bill{Count}.jpg"); return(saving); }
/// <summary> /// La cañería recibe una imagen, construye un duplicado de la misma, /// y envía la original por una cañería y el duplicado por otra. /// </summary> /// <param name="picture">imagen a filtrar y enviar a las siguientes cañerías</param> public IPicture Send(IPicture picture) { if (this.filtro.Filter(picture)) { return(this.nextPipe.Send(picture)); } else { return(this.next2Pipe.Send(picture.Clone())); } }
/// <summary> /// La cañería recibe una imagen, construye un duplicado de la misma, /// y envía la original por una cañería y el duplicado por otra. /// </summary> /// <param name="picture">imagen a filtrar y enviar a las siguientes cañerías</param> public IPicture Send(IPicture picture) { if (FilterHasFace.hasface) { return(next2Pipe.Send(picture.Clone())); } else { return(this.nextPipe.Send(picture)); } }
public IPicture Filter(IPicture image) { IPicture twitterImg = image.Clone(); string consumerKey = "g7rkPB5uI2xOqELAhlNrorSU4"; string consumerKeySecret = "8hOTyS71GrTH9Ool3rXykAJRY5AmgSPiy78b1wYUPcvfIzXeEc"; string accessTokenSecret = "675fHmUzeaPajtj3pO64w5xd3p9YI3kco7kSvKhzeEvYe"; string accessToken = "1396065818-8vnV9HJFW5ArcfFg2zE9hLA68CZYFXO8Cjv6o2E"; var twitter = new TwitterImage(consumerKey, consumerKeySecret, accessToken, accessTokenSecret); Console.WriteLine(twitter.PublishToTwitter("FilteredImage ", @"NewImage.jpg")); return(twitterImg); }
/// <summary> /// Recibe una imagen y la retorna con el filtro aplicado. /// </summary> /// <param name="image">Imagen a la cual se le va a plicar el filtro</param> /// <returns>Imagen con el filtro aplicado</returns> public IPicture Filter(IPicture image) { IPicture imagenFiltrada = image.Clone(); Color[,] matrizVecinos; for (int x = 0; x < image.Width; x++) { for (int y = 0; y < image.Height; y++) { matrizVecinos = convolution.CrearMatriz(image, x, y); imagenFiltrada.SetColor(x, y, convolution.ObtenerColorFiltrado(matrizVecinos)); } } return(imagenFiltrada); }
/// <summary> /// Recibe una imagen y la retorna con un filtro del tipo inventado aplicado /// </summary> /// <param name="image">Imagen a la cual se le va a plicar el filtro.</param> /// <returns>Imagen con el filtro aplicado</returns> public IPicture Filter(IPicture image) { var newImage = image.Clone(); var recognition = Cognitive.FaceRecognition($@"./../../images/bill{FilterSave.Instance.Count}.jpg"); if (recognition) { var grey = new FilterGreyscale(); newImage = grey.Filter(newImage); } else { var blur = new FilterBlurConvolution(); newImage = blur.Filter(newImage); } return(newImage); }
/// <summary> /// Recibe una imagen y la retorna con un filtro de escala de grises aplicado. /// </summary> /// <param name="image">Imagen a la que se le va a aplicar el filtro.</param> /// <returns>Imagen con el filtro aplicado.</returns> public IPicture Filter(IPicture image) { Debug.Assert(image != null); IPicture greyScale = image.Clone(); for (int x = 0; x < greyScale.Width; x++) { for (int y = 0; y < greyScale.Height; y++) { Color colorOriginal = greyScale.GetColor(x, y); byte rOriginal = colorOriginal.R; byte gOriginal = colorOriginal.G; byte bOriginal = colorOriginal.B; int luma = (int)((rOriginal * 0.3) + (gOriginal * 0.59) + (bOriginal * 0.11)); Color colorGris; colorGris = Color.FromArgb(luma, luma, luma); greyScale.SetColor(x, y, colorGris); } } return(greyScale); }
/// <summary> /// La cañería recibe una imagen, construye un duplicado de la misma, /// y envía la original por una cañería y el duplicado por otra. /// </summary> /// <param name="picture">imagen a filtrar y enviar a las siguientes cañerías</param> public IPicture Send(IPicture picture) { next2Pipe.Send(picture.Clone()); return(this.nextPipe.Send(picture)); }
static void Main(string[] args) { // Se obtiene la imagen. PictureProvider p = new PictureProvider(); IPicture pic = p.GetPicture(@"download.jpg"); // Se crean los filtros que se van a utilizar. FilterGreyscale filterGreyscale = new FilterGreyscale(); FilterNegative filterNegative = new FilterNegative(); FilterSaveImage filterSaveImage = new FilterSaveImage(); FilterTwitterApi filterTwitterApi = new FilterTwitterApi(); FilterHasFace filterHasFace = new FilterHasFace(); // Parte 1 /* * PipeNull pipeNull = new PipeNull(); * PipeSerial pipeFilterNegative = new PipeSerial(filterNegative, pipeNull); * PipeSerial pipeFilterGreyScale = new PipeSerial(filterGreyscale, pipeFilterNegative); * pipeFilterGreyScale.Send(pic);*/ // Parte 2 /* * PipeNull pipeNull = new PipeNull(); * PipeSerial pipeFilterSaveImageTwo = new PipeSerial(filterSaveImage, pipeNull); * PipeSerial pipeFilterNegative = new PipeSerial(filterNegative, pipeFilterSaveImageTwo); * PipeSerial pipeFilterSaveImageOne = new PipeSerial(filterSaveImage, pipeFilterNegative); * PipeSerial pipeFilterGreyScale = new PipeSerial(filterGreyscale, pipeFilterSaveImageOne); * pipeFilterGreyScale.Send(pic);*/ // Parte 3 /* * PipeNull pipeNull = new PipeNull(); * PipeSerial pipeTwitterApiTwo = new PipeSerial(filterTwitterApi, pipeNull); * PipeSerial pipeFilterSaveImageTwo = new PipeSerial(filterSaveImage, pipeTwitterApiTwo); * PipeSerial pipeFilterNegative = new PipeSerial(filterNegative, pipeFilterSaveImageTwo); * PipeSerial pipeTwitterApi = new PipeSerial(filterTwitterApi, pipeFilterNegative); * PipeSerial pipeFilterSaveImageOne = new PipeSerial(filterSaveImage, pipeTwitterApi); * PipeSerial pipeFilterGreyScale = new PipeSerial(filterGreyscale, pipeFilterSaveImageOne); * pipeFilterGreyScale.Send(pic);*/ // Parte 4. /* * PipeNull pipeNull = new PipeNull(); * PipeSerial pipeFilterSaveImageTwo = new PipeSerial(filterSaveImage, pipeNull); * PipeSerial pipeFilterNegative = new PipeSerial(filterNegative, pipeFilterSaveImageTwo); * PipeSerial pipeTwitterApi = new PipeSerial(filterTwitterApi, pipeNull); * PipeFork pipeConditionalFork = new PipeFork(pipeFilterNegative, pipeTwitterApi); * PipeSerial pipeFilterHasFace = new PipeSerial(filterHasFace, pipeConditionalFork); * PipeSerial pipeFilterSaveImageOne = new PipeSerial(filterSaveImage, pipeFilterHasFace); * PipeSerial pipeFilterGreyScale = new PipeSerial(filterGreyscale, pipeFilterSaveImageOne); * pipeFilterGreyScale.Send(pic);*/ pic = p.GetPicture(@"Imagen2.jpg"); //Filtro FilterBlackAndWhite PipeNull pipeNull = new PipeNull(); FilterSaveImage2 filterSaveImage2 = new FilterSaveImage2(); PipeSerial pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterBlackAndWhite filterBAndW = new FilterBlackAndWhite(20); PipeSerial pipeFilterBAndW = new PipeSerial(filterBAndW, pipeFilterSaveImage2); pipeFilterBAndW.Send(pic.Clone()); //Filtro FilterClearOut pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterClearOut filterClearOut = new FilterClearOut(); PipeSerial pipeFilterClearOut = new PipeSerial(filterClearOut, pipeFilterSaveImage2); pipeFilterClearOut.Send(pic.Clone()); //Filtro FilterColoredLines pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterColoredLines filterColoredLines = new FilterColoredLines(); PipeSerial pipeFilterColoredLines = new PipeSerial(filterColoredLines, pipeFilterSaveImage2); pipeFilterColoredLines.Send(pic.Clone()); //Filtro FilterDarken pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterDarken filterDarken = new FilterDarken(); PipeSerial pipeFilterDarken = new PipeSerial(filterDarken, pipeFilterSaveImage2); pipeFilterDarken.Send(pic.Clone()); //Filtro FilterNeon pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterNeon filterNeon = new FilterNeon(); PipeSerial pipeFilterNeon = new PipeSerial(filterNeon, pipeFilterSaveImage2); pipeFilterNeon.Send(pic.Clone()); //Filtro FilterPencil pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterPencil filterPencil = new FilterPencil(); PipeSerial pipeFilterPencil = new PipeSerial(filterPencil, pipeFilterSaveImage2); pipeFilterPencil.Send(pic.Clone()); //Filtro FilterRelief pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterRelief filterRelief = new FilterRelief(); PipeSerial pipeFilterRelief = new PipeSerial(filterRelief, pipeFilterSaveImage2); pipeFilterRelief.Send(pic.Clone()); //Filtro FilterGreyScale pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterGreyscale filterGreyScale = new FilterGreyscale(); PipeSerial pipeFilterGreyscale = new PipeSerial(filterGreyScale, pipeFilterSaveImage2); pipeFilterGreyscale.Send(pic.Clone()); //Filtro BlurConvolution pipeNull = new PipeNull(); pipeFilterSaveImage2 = new PipeSerial(filterSaveImage2, pipeNull); FilterBlurConvolution filterBlurConvolution = new FilterBlurConvolution(); PipeSerial pipeFilterBlurConvolution = new PipeSerial(filterBlurConvolution, pipeFilterSaveImage2); pipeFilterBlurConvolution.Send(pic.Clone()); }