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]); } } }
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 }); }