Beispiel #1
0
        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));
            }
        }