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