static void Main(string[] args) { // creamos un objeto PictureProvider y obtenemos una imagen PictureProvider p = new PictureProvider(); IPicture pic = p.GetPicture("C:/Users/FIT/programacion2/ejercicio_en_clase/ComposicionYDelegacion/PII_Pipes_Filters-master/gato.png"); // creamos un pipeNull IPipe pipenull = new PipeNull(); // creamos instancias de todos los filtros que nos interecen FilterSave filtersave = new FilterSave("../../gato2.png"); FilterTwitter filtertwitter = new FilterTwitter(filtersave.path); FilterNegative filternegative = new FilterNegative(); FilterGreyscale filtergreyscale = new FilterGreyscale(); ConditionalFilter conditionalfilter = new ConditionalFilter(filtersave.path); FilterBlurConvolution filterblurconvolution = new FilterBlurConvolution(); // creamos instancias de todos los pipeSerial que vayamos a utilizar IPipe pipeserial7 = new PipeSerial(filtertwitter, pipenull); IPipe pipeserial6 = new PipeSerial(filtersave, pipeserial7); // en este caso se sobrescribe la imagen guardada ya que estoy usando el mismo filtersave con el mismo path IPipe pipeserial5 = new PipeSerial(filterblurconvolution, pipeserial6); IPipe pipeserial4 = new PipeSerial(filtertwitter, pipenull); IPipe pipefork = new PipeFork(conditionalfilter, pipeserial4, pipeserial5); IPipe pipeserial3 = new PipeSerial(filtersave, pipefork); IPipe pipeserial2 = new PipeSerial(filternegative, pipeserial3); IPipe pipeserial = new PipeSerial(filtergreyscale, pipeserial2); // enviamos la imagen al primer pipeSerial pipeserial.Send(pic); }
static void Main(string[] args) { PictureProvider imgProvider = new PictureProvider(); IPicture pictureProv = imgProvider.GetPicture("Vikings.jpg"); IConvolution matrix = new BlurConvolutionMatriz(); FilterConvolution blurFilter = new FilterConvolution(matrix); FilterNegative negativeFilter = new FilterNegative(); FilterTwitter twitterFilter = new FilterTwitter(); FilterCognitive faceRecognition = new FilterCognitive(); PipeNull pipeEnd = new PipeNull(); PipeSerial pipeTwitter = new PipeSerial(twitterFilter, pipeEnd); PipeSerial pipeBlur = new PipeSerial(blurFilter, pipeEnd); PipeSerial pipeNegative = new PipeSerial(negativeFilter, pipeEnd); PipeConditional pipeFace = new PipeConditional(faceRecognition, pipeTwitter, pipeNegative); imgProvider.SavePicture(pipeFace.Send(pictureProv), "Vikings.jpg"); }
static void Main(string[] args) { PictureProvider p = new PictureProvider(); IPicture pic = p.GetPicture("../faceImage.jpg"); IFilter filterGreyscale = new FilterGreyscale(); IFilter filterNegative = new FilterNegative(); IFilter filterProvider = new FilterProvider(); IFilter filterTwiter = new FilterTwitter(); IFilter filterConditional = new FilterConditional(); IFilter filterBlurConvolution = new FilterBlurConvolution(); IFilter filterSharpenConvolution = new FilterSharpenConvolution(); //EJERCICIO 1 IPipe pipeNull_ej1 = new PipeNull(); IPipe pipeSerial2_ej1 = new PipeSerial(filterNegative, pipeNull_ej1); IPipe pipeSerial1_ej1 = new PipeSerial(filterGreyscale, pipeSerial2_ej1); pipeSerial1_ej1.Send(pic); //EJERCICIO 2 IPipe pipeNull_ej2 = new PipeNull(); IPipe pipeProvider2_ej2 = new PipeSerial(filterProvider, pipeNull_ej2); IPipe pipeSerial2_ej2 = new PipeSerial(filterNegative, pipeProvider2_ej2); IPipe pipeProvider1_ej2 = new PipeSerial(filterProvider, pipeSerial2_ej2); IPipe pipeSerial1_ej2 = new PipeSerial(filterGreyscale, pipeProvider1_ej2); pipeSerial1_ej2.Send(pic); //EJERCICIO 3 IPipe pipeNull_ej3 = new PipeNull(); IPipe pipeTwiter2_ej3 = new PipeSerial(filterTwiter, pipeNull_ej3); IPipe pipeProvider2_ej3 = new PipeSerial(filterProvider, pipeTwiter2_ej3); IPipe pipeSerial2_ej3 = new PipeSerial(filterNegative, pipeProvider2_ej3); IPipe pipeTwiter1_ej3 = new PipeSerial(filterTwiter, pipeSerial2_ej3); IPipe pipeProvider1_ej3 = new PipeSerial(filterProvider, pipeTwiter1_ej3); IPipe pipeSerial1_ej3 = new PipeSerial(filterGreyscale, pipeProvider1_ej3); pipeSerial1_ej3.Send(pic); //EJERCICIO 4 IPipe pipeNull_ej4 = new PipeNull(); IPipe pipeProvider2_ej4 = new PipeSerial(filterProvider, pipeNull_ej4); IPipe pipeSerial2_ej4 = new PipeSerial(filterNegative, pipeProvider2_ej4); IPipe pipeTwiter1_ej4 = new PipeSerial(filterTwiter, pipeNull_ej4); IPipe pipeConditionalFork1_ej4 = new PipeConditionalFork(filterConditional, pipeTwiter1_ej4, pipeSerial2_ej4); IPipe pipeProvider1_ej4 = new PipeSerial(filterProvider, pipeConditionalFork1_ej4); IPipe pipeSerial1_ej4 = new PipeSerial(filterGreyscale, pipeProvider1_ej4); pipeSerial1_ej4.Send(pic); //EJERCICIO BONUS IPipe pipeNull_ejB = new PipeNull(); IPipe pipeProvider2_ejB = new PipeSerial(filterProvider, pipeNull_ejB); IPipe pipeSerial2_ejB = new PipeSerial(filterSharpenConvolution, pipeProvider2_ejB); IPipe pipeProvider1_ejB = new PipeSerial(filterProvider, pipeSerial2_ejB); IPipe pipeSerial1_ejB = new PipeSerial(filterBlurConvolution, pipeProvider1_ejB); pipeSerial1_ejB.Send(pic); }
static void Main(string[] args) { IFilter Greyscale = new FilterGreyscale(); IFilter Negative = new FilterNegative(); IFilter Twitter = new FilterTwitter(); IFilter Save = new FilterSave(); IFilter Sharpen = new FilterSharpenConvolution(); IFilterBool HasFace = new FilterFace(); PictureProvider p = new PictureProvider(); IPicture pic = p.GetPicture("..\\Images\\image.jpg"); /// <summary> /// Las clases Pipe que aplican algún filtro a la imagen delegan la responsabilidad de modificar /// la imagen a la clase Filter que la compone. /// </summary> /// <returns></returns> #region Ejercicio 1 IPipe Pipe1_3 = new PipeNull(); IPipe Pipe1_2 = new PipeSerial(Negative, Pipe1_3); IPipe Pipe1_1 = new PipeSerial(Greyscale, Pipe1_2); Pipe1_1.Send(pic); #endregion #region Ejercicio 2 IPipe Pipe2_5 = new PipeNull(); IPipe Pipe2_4 = new PipeSerial(Save, Pipe2_5); IPipe Pipe2_3 = new PipeSerial(Negative, Pipe2_4); IPipe Pipe2_2 = new PipeSerial(Save, Pipe2_3); IPipe Pipe2_1 = new PipeSerial(Greyscale, Pipe2_2); Pipe2_1.Send(pic); #endregion #region Ejercicio 3 IPipe Pipe3_5 = new PipeNull(); IPipe Pipe3_4 = new PipeSerial(Twitter, Pipe2_5); IPipe Pipe3_3 = new PipeSerial(Negative, Pipe2_4); IPipe Pipe3_2 = new PipeSerial(Twitter, Pipe2_3); IPipe Pipe3_1 = new PipeSerial(Greyscale, Pipe2_2); Pipe3_1.Send(pic); #endregion #region Ejercicio 4 IPipe Pipe4_5 = new PipeNull(); IPipe Pipe4_4 = new PipeSerial(Negative, Pipe4_5); IPipe Pipe4_3 = new PipeSerial(Twitter, Pipe4_5); IPipe Pipe4_2 = new PipeConditionalFork(Pipe4_3, Pipe4_4, HasFace); IPipe Pipe4_1 = new PipeSerial(Greyscale, Pipe4_2); Pipe4_1.Send(pic); #endregion #region Ejercicio Bonus IPipe PipeBonus_3 = new PipeNull(); IPipe PipeBonus_2 = new PipeSerial(Save, PipeBonus_3); IPipe PipeBonus_1 = new PipeSerial(Sharpen, PipeBonus_2); PipeBonus_1.Send(pic); #endregion }