private void LeftViewLoadButton_Click(object sender, RoutedEventArgs e) { #region drawing extension functions test var img = ImageExtensions.BuildImage(Game.Get.TileManager.Tiles); img.DrawLine(new Vector2(10, 10), new Vector2(20, 15), 1, Colors.Blue()); img.DrawRectangle(new Vector2(18, 18), 5, 7, false, 1, Colors.MediumPurple()); img.DrawRectangle(new Vector2(14, 13), 2, 4, true, 1, Colors.HotPink()); img.DrawCircle(new Vector2(25, 25), 5, false, 1, Colors.Black()); img.DrawCircle(new Vector2(25, 10), 5, true, 1, Colors.White()); var polygonPoints1 = new List <Vector2>() { new Vector2(10, 1), new Vector2(10, 30), new Vector2(30, 3) }; var polygonPoints2 = new List <Vector2>() { new Vector2(4, 4), new Vector2(4, 7), new Vector2(7, 7) }; img.DrawPolygon(polygonPoints1, false, 1, Colors.BrightBlue()); img.DrawPolygon(polygonPoints2, true, 1, Colors.Green()); img.DrawText(new Vector2(12, 20), "1", 15, Colors.Red()); var bitmapImage = ImageExtensions.GetBitmapFromPath("Media/Testing/TestDrawnImage2.png"); img.DrawImage(new Vector2(3, 20), bitmapImage); #endregion //img.Save("image.png",ImageFormat.Png); //Variable used to load the image in online so it can be copied and checked using https://codebeautify.org/base64-to-image-converter. //var strval = Convert.ToBase64String(ImageExtensions.ToByteArray(img)); //LeftViewContainer.Source = ImageExtensions.BitmapToImageSource(img); var controlImage = new CustomImage { Source = ImageExtensions.BitmapToImageSource(img) }; Main.GetDispatcher.Invoke(PopulateCanvasControlDelegate, LeftViewContainer, new List <CustomImage> { controlImage }, false); }
public static Bitmap ConstructSensorDataBackground(Tile[,] tiles) { try { var lightAmount = tiles[0, 0].Lights.GetLength(0); var sensorAmount = tiles[0, 0].Sensors.GetLength(0); // Set size of all lights+sensor amounts combined * amount tiles. var imgSize = new Vector2( tiles.GetLength(0) * (lightAmount + sensorAmount), tiles.GetLength(1) * (lightAmount + sensorAmount) ); var img = new Bitmap(imgSize.X, imgSize.Y); img.DrawRectangle(Vector2.Zero(), imgSize.X, imgSize.Y, true, 5, Colors.DarkGray()); // Generate horizontal lines. for (var lineX = 1; lineX < imgSize.Y - 1; lineX += 3) { img.DrawLine(new Vector2(0, lineX), new Vector2(imgSize.X, lineX), 1, Colors.Black()); } // Generate vertical lines. for (var lineY = 1; lineY < imgSize.X - 1; lineY += 3) { img.DrawLine(new Vector2(lineY, 0), new Vector2(lineY, imgSize.Y), 1, Colors.Black()); } // For every tile (X & Y) , go through every sensor (X & Y) and // draw every sensor point with the correct spacing. for (var tileX = 0; tileX < tiles.GetLength(0); tileX++) { for (var tileY = 0; tileY < tiles.GetLength(1); tileY++) { for (var sensorX = 0; sensorX < tiles[tileX, tileY].Sensors.GetLength(0); sensorX++) { for (var sensorY = 0; sensorY < tiles[tileX, tileY].Sensors.GetLength(1); sensorY++) { var tile = tiles[tileX, tileY]; var sensor = tile.Sensors[sensorX, sensorY]; var color = sensor.PressureDetected ? Colors.DarkGreen() : Colors.MidnightRed(); img.SetPixel( (tileX * (lightAmount + sensorAmount) + (sensorX * 3)) + 1, (tileY * (lightAmount + sensorAmount) + (sensorY * 3)) + 1, color ); } } } } return(img); } catch (Exception exception) { ConsoleLogger.WriteToConsole(tiles, "Error building image from Tile[,] Array. " + "(ImageExtensions)", exception); return(new Bitmap(1, 1)); } }