Exemple #1
0
        public FloatingImage[,] Split(int Width, int Height)
        {
            uint ImageWidth  = (uint)_Pixels.GetLength(0);
            uint ImageHeight = (uint)_Pixels.GetLength(1);

            int xSplit = (int)(ImageWidth / Width);
            int ySplit = (int)(ImageHeight / Height);

            FloatingImage[,] F = new FloatingImage[xSplit, ySplit];

            for (int i = 0; i < ImageHeight; ++i)
            {
                for (int j = 0; j < ImageWidth; ++j)
                {
                    int fX = j / Width;
                    int fY = i / Height;

                    int fOX = j - Width * fX;
                    int fOY = i - Height * fY;

                    if (F[fX, fY] == null)
                    {
                        F[fX, fY] = new FloatingImage(Width, Height);
                    }
                    F[fX, fY]._Pixels[fOX, fOY] = this[j, i];
                }
            }

            return(F);
        }
Exemple #2
0
        public FloatingImage Filter(TranscendentalFilter Filter)
        {
            int Width  = _Pixels.GetLength(0);
            int Height = _Pixels.GetLength(1);

            FloatingImage R = new FloatingImage(Width, Height);

            Filter.Filter(this, R);

            return(R);
        }
Exemple #3
0
        public void Paint(int X, int Y, FloatingImage Image)
        {
            int Width = Radius * 2 + 1;

            for (int i = 0; i < Width; ++i)
            {
                for (int j = 0; j < Width; ++j)
                {
                    int x = i - Radius;
                    int y = j - Radius;
                    Image[X + x, Y + y] = BlendMode.Filter(Image[X + x, Y + y], Color * Matrix[i, j]);
                }
            }
        }
Exemple #4
0
        public FloatingImage Filter(BlendFilter Filter, FloatingImage Image)
        {
            int Width  = _Pixels.GetLength(0);
            int Height = _Pixels.GetLength(1);

            FloatingColor[,] NewPixels = new FloatingColor[Width, Height];

            for (int i = 0; i < Width; ++i)
            {
                for (int j = 0; j < Height; ++j)
                {
                    NewPixels[i, j] = Filter.Filter(this[i, j], Image[i, j]);
                }
            }

            return(new FloatingImage()
            {
                _Pixels = NewPixels
            });
        }
Exemple #5
0
        public FloatingImage GenerateImage(int Width, int Height)
        {
            FloatingImage F   = new FloatingImage(Width, Height);
            float         Min = float.MaxValue;
            float         Max = float.MinValue;

            for (int i = 0; i < Width; ++i)
            {
                for (int j = 0; j < Height; ++j)
                {
                    float G = (float)Generate(i, j);
                    F[i, j] = new FloatingColor(G);
                    if (G > Max)
                    {
                        Max = G;
                    }
                    if (G < Min)
                    {
                        Min = G;
                    }
                }
            }
            return(F);
        }