Ejemplo n.º 1
0
        public mApplySequence(Bitmap SourceBitmap, mFilters Filter)
        {
            SourceBitmap = new mSetFormat(SourceBitmap, Filter.BitmapType).ModifiedBitmap;

            ModifiedBitmap = SourceBitmap;

            ModifiedBitmap = Filter.Sequence.Apply(SourceBitmap);
        }
Ejemplo n.º 2
0
 public void AddFilter(mFilters Filters)
 {
     if (Filters.BitmapType < BitmapType)
     {
         BitmapType = Filters.BitmapType;
     }
     foreach (IFilter filter in Filters.Sequence)
     {
         Sequence.Add(filter);
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public mFilterTexture(mTexture SourceTexture, mFilters Filter)
        {
            BitmapType = Filter.BitmapType;

            MaskTexture = SourceTexture;

            Effect = new TexturedFilter(MaskTexture.Texture, Filter.Sequence[0]);

            Sequence.Clear();
            Sequence.Add(Effect);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
        /// <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);
        }