Example #1
0
        public void Setup(string fileName)
        {
            Repository = new Repository();
            Repository.Load();
            _window = Substitute.For <IEmulatorWindow>();
            var settings      = Substitute.For <ISettings>();
            var recognition   = new TextRecognition();
            var loggerFactory = Substitute.For <ILoggerFactory>();

            _videoProvider = Substitute.For <IVideoProvider>();
            Game           = new GameImpl(_window, _videoProvider, Repository, loggerFactory, recognition, settings);
#if DEBUG
            Settings.SaveImages    = true;
            Settings.SaveRawImages = true;
#endif

            using var bitmap = new Bitmap(fileName);
            _window.Width.Returns(bitmap.Width);
            _window.Height.Returns(bitmap.Height);
            _window.GrabScreen(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <int>(), Arg.Any <int>())
            .Returns(info =>
            {
                using var bitmapLocal = new Bitmap(fileName);
                return(bitmapLocal.Crop(info.ArgAt <int>(0), info.ArgAt <int>(1), info.ArgAt <int>(2), info.ArgAt <int>(3)));
            });
            _videoProvider.GetCurrentFrame().Returns(info => bitmap);
        }
        private async void PickImage()
        {
            await PickAreaAsync();

            int x = (int)(UiElement.X.GetValueOrDefault() * _window.Width),
                y = (int)(UiElement.Y.GetValueOrDefault() * _window.Height),
                w = (int)(UiElement.W.GetValueOrDefault() * _window.Width),
                h = (int)(UiElement.H.GetValueOrDefault() * _window.Height);

            UiElement.Image = _window.GrabScreen(x, y, w, h).ToByteArray();
            Image           = ByteToImage(UiElement.Image);
        }
Example #3
0
        private Bitmap GrabElement(UiElement element)
        {
            var x       = element.X.GetValueOrDefault() * _window.Width;
            var y       = element.Y.GetValueOrDefault() * _window.Height;
            var w       = element.W.GetValueOrDefault() * _window.Width;
            var h       = element.H.GetValueOrDefault() * _window.Height;
            var section = _window.GrabScreen((int)x, (int)y, (int)w, (int)h);

            if (Settings.SaveRawImages)
            {
                var dir = Path.Combine("logs", "raw");
                Directory.CreateDirectory(dir);
                section.Save(Path.Combine(dir, $"{element.Id}.bmp"), System.Drawing.Imaging.ImageFormat.Bmp);
            }
            return(section);
        }