public mApplySequence(Bitmap SourceBitmap, mFilters Filter) { SourceBitmap = new mSetFormat(SourceBitmap, Filter.BitmapType).ModifiedBitmap; ModifiedBitmap = SourceBitmap; ModifiedBitmap = Filter.Sequence.Apply(SourceBitmap); }
public void AddFilter(mFilters Filters) { if (Filters.BitmapType < BitmapType) { BitmapType = Filters.BitmapType; } foreach (IFilter filter in Filters.Sequence) { Sequence.Add(filter); } }
public mIterate(Bitmap SourceBitmap, mFilters Filter, int Iterations) { ModifiedBitmap = (Bitmap)SourceBitmap.Clone(); ModifiedBitmap = new mSetFormat(ModifiedBitmap, Filter.BitmapType).ModifiedBitmap; FilterIterator Iterator = new FilterIterator(Filter.Sequence, Iterations); ModifiedBitmap = Iterator.Apply(ModifiedBitmap); ModifiedBitmap = new mSetFormat(ModifiedBitmap, Filter.BitmapType).ModifiedBitmap; ModifiedBitmap.SetResolution(SourceBitmap.HorizontalResolution, SourceBitmap.VerticalResolution); }
public mFilterTexture(mTexture SourceTexture, mFilters Filter) { BitmapType = Filter.BitmapType; MaskTexture = SourceTexture; Effect = new TexturedFilter(MaskTexture.Texture, Filter.Sequence[0]); Sequence.Clear(); Sequence.Add(Effect); }
public mFilterMask(Bitmap SourceBitmap, mFilters Filter) { BitmapType = 0; MaskBitmap = new Bitmap(SourceBitmap); MaskBitmap = new mSetFormat(MaskBitmap, mFilter.BitmapTypes.GrayScale16bpp).ModifiedBitmap; Effect = new MaskedFilter(Filter.Sequence[0], MaskBitmap); Sequence.Clear(); Sequence.Add(Effect); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Declare variables IGH_Goo Z = null; IGH_Goo Y = null; int L = 1; // Access the input parameters if (!DA.GetData(0, ref Z)) { return; } if (!DA.GetData(1, ref Y)) { return; } if (!DA.GetData(2, ref L)) { return; } wObject X = new wObject(); mFilters F = new mFilters(); mSequence S = new mSequence(); Bitmap A = new Bitmap(10, 10); if (Z != null) { Z.CastTo(out A); } if (Y != null) { Y.CastTo(out X); } if (X.SubType == "Filters") { S.AddFilter((mFilters)X.Element); } else if (X.SubType == "Filter") { S.AddFilter((mFilter)X.Element); } F = S; Bitmap B = new mIterate(A, F, L).ModifiedBitmap; DA.SetData(0, B); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Declare variables Interval Ra = new Interval(0, 255); Interval Ga = new Interval(0, 255); Interval Ba = new Interval(0, 255); Interval Rb = new Interval(0, 255); Interval Gb = new Interval(0, 255); Interval Bb = new Interval(0, 255); // Access the input parameters if (!DA.GetData(0, ref Ra)) { return; } if (!DA.GetData(1, ref Rb)) { return; } if (!DA.GetData(2, ref Ga)) { return; } if (!DA.GetData(3, ref Gb)) { return; } if (!DA.GetData(4, ref Ba)) { return; } if (!DA.GetData(5, ref Bb)) { return; } mFilters Filter = new mFilters(); //Filter = new mAdjustLevels(new wDomain(Ra.T0, Ra.T1), new wDomain(Ga.T0, Ga.T1), new wDomain(Ba.T0, Ba.T1), new wDomain(Rb.T0, Rb.T1), new wDomain(Gb.T0, Gb.T1), new wDomain(Bb.T0, Bb.T1)); wObject W = new wObject(Filter, "Macaw", Filter.Type); DA.SetData(0, W); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Declare variables IGH_Goo X = null; IGH_Goo Y = null; // Access the input parameters if (!DA.GetData(0, ref X)) { return; } if (!DA.GetData(1, ref Y)) { return; } mTexture T = new mTexture(); wObject Z = new wObject(); wObject U = new wObject(); mFilters F = new mFilters(); if (X != null) { X.CastTo(out Z); } T = (mTexture)Z.Element; if (Y != null) { Y.CastTo(out U); } F = (mFilters)U.Element; mFilters Filter = new mFilters(); Filter = new mFilterTexture(T, F); wObject W = new wObject(Filter, "Macaw", Filter.Type); DA.SetData(0, W); }
public mMatchBitmaps(Bitmap ImageA, Bitmap ImageB, int MatchMode, int ScaleMode) { if (MatchMode == 0) { BitmapA = new Bitmap(ImageA); BitmapB = new Bitmap(ImageB); } else { BitmapA = new Bitmap(ImageB); BitmapB = new Bitmap(ImageA); } mFilters Filter = new mFilters(); switch (ScaleMode) { case 0: //Crop Filter = new mFitCrop(BitmapA, BitmapB); break; case 1: //Fit Filter = new mFitScale(BitmapA, BitmapB); break; case 2: //Stretch Filter = new mFitStretch(BitmapA, BitmapB); break; } if (MatchMode == 0) { BottomImage = new Bitmap(new mApplySequence(BitmapA, Filter).ModifiedBitmap); TopImage = new Bitmap(BitmapB); } else { BottomImage = new Bitmap(BitmapB); TopImage = new Bitmap(new mApplySequence(BitmapA, Filter).ModifiedBitmap); } }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Declare variables List <IGH_Goo> X = new List <IGH_Goo>(); // Access the input parameters if (!DA.GetDataList(0, X)) { return; } mFilters F = new mFilters(); mSequence S = new mSequence(); S.ClearSequence(); List <string> types = new List <string>(); for (int i = 0; i < X.Count; i++) { wObject Y = new wObject(); X[i].CastTo(out Y); if (Y.SubType == "Filters") { S.AddFilter((mFilters)Y.Element); } else if (Y.SubType == "Filter") { S.AddFilter((mFilter)Y.Element); } } F = S; wObject W = new wObject(F, "Macaw", F.Type); DA.SetData(0, W); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Declare variables IGH_Goo Z = null; int M = 0; int AX = 1; int AY = 1; int CW = 800; int CH = 600; Rectangle3d Rc = new Rectangle3d(Plane.WorldXY, 800, 600); Color C = Color.Transparent; // Access the input parameters if (!DA.GetData(0, ref Z)) { return; } Bitmap A = new Bitmap(10, 10); if (Z != null) { Z.CastTo(out A); } mFilters Filter = new mFilters(); switch (ModeIndex) { case 0: //Rectangle if (!DA.GetData(1, ref C)) { return; } if (!DA.GetData(2, ref Rc)) { return; } Filter = new mCropRectangle((int)Rc.X.T0, (int)Rc.Y.T0, (int)Rc.Width, (int)Rc.Height, C); break; case 1: //Region if (!DA.GetData(1, ref C)) { return; } if (!DA.GetData(2, ref AX)) { return; } if (!DA.GetData(3, ref AY)) { return; } if (!DA.GetData(4, ref CW)) { return; } if (!DA.GetData(5, ref CH)) { return; } Filter = new mCropCanvas(AX, AY, CW, CH, A.Width, A.Height, C); break; case 2: //Shrink if (!DA.GetData(1, ref C)) { return; } Filter = new mShrinkToColor(C); break; case 3: //Resize if (!DA.GetData(1, ref M)) { return; } if (!DA.GetData(2, ref CW)) { return; } if (!DA.GetData(3, ref CH)) { return; } switch (M) { case 0: Filter = new mResizeBicubic(CW, CH); break; case 1: Filter = new mResizeBilinear(CW, CH); break; case 2: Filter = new mResizeNearistNeighbor(CW, CH); break; } break; } Bitmap B = new mApplySequence(A, Filter).ModifiedBitmap; wObject W = new wObject(Filter, "Macaw", Filter.Type); DA.SetData(0, B); DA.SetData(1, W); }