void LoadMap(Stream fileStream) { var img = new BitmapImage(); img.SetSource(fileStream); var writeable = new WriteableBitmap(img); var width = img.PixelWidth; var map = new Cell[img.PixelWidth, img.PixelHeight]; for (int row = 0; row < img.PixelHeight; ++row) for (int col = 0; col < img.PixelWidth; ++col) { var cell = Cell.Free; var pixel = writeable.GetPixeli(col, row); switch (pixel) { case WHITE: cell = Cell.Free; break; case BLACK: cell = Cell.Obstacle; break; case RED: cell = Cell.Goal; break; case GREEN: cell = Cell.Start; break; default: System.Diagnostics.Debugger.Break(); StatusText.Text = "Invalid Color encountered"; break; } map[col, row] = cell; } _Map = new RobotMap(map); _Path = null; ShowMap(); }