public long Add(ScreenShotModel model) { model.KeyId = Guid.NewGuid(); model.CreatedAt = model.UpdatedAt = DateTime.Now; #region 保存截图 var imageResult = Execute <string>(() => { var savePath = $"//Monitor//Screen//{model.CreatedAt.Year}//{model.CreatedAt.Month}//{model.CreatedAt.Day}//{model.KeyId}.jpeg"; string path = $"{Directory.GetCurrentDirectory()}//wwwroot//{savePath}"; string filepath = Path.GetDirectoryName(path); if (!Directory.Exists(filepath)) { Directory.CreateDirectory(filepath); } string dummyData = model.ScreenInfo.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+"); if (dummyData.Length % 4 > 0) { dummyData = dummyData.PadRight(dummyData.Length + 4 - dummyData.Length % 4, '='); } var photoBytes = Convert.FromBase64String(dummyData); File.WriteAllBytes(path, photoBytes); return(savePath); }); if (imageResult.Status == 200) { model.ScreenInfo = imageResult.Data; } #endregion var result = Execute <long>(() => { return(_repository.Add(model)); }); return(result.Data); }
public ScreenShotViewModel(LanguageManager loc, Settings settings, DiskWriter diskWriter, ClipboardWriter clipboardWriter, ImageUploadWriter imgurWriter, ScreenShotModel screenShotModel, VideoSourcesViewModel videoSourcesViewModel, IPlatformServices platformServices) : base(settings, loc) { DiskWriter = diskWriter; ClipboardWriter = clipboardWriter; ImgurWriter = imgurWriter; ScreenShotCommand = videoSourcesViewModel .ObserveProperty(sourcesViewModel => sourcesViewModel.SelectedVideoSourceKind) .Select(videoSourceProvider => !(videoSourceProvider is NoVideoSourceProvider)) .ToReactiveCommand() .WithSubscribe(() => screenShotModel.CaptureScreenShot()); async Task ScreenShotWindow(IWindow window) { var img = screenShotModel.ScreenShotWindow(window); await screenShotModel.SaveScreenShot(img); } ScreenShotActiveCommand = new DelegateCommand(async() => await ScreenShotWindow(platformServices.ForegroundWindow)); ScreenShotDesktopCommand = new DelegateCommand(async() => await ScreenShotWindow(platformServices.DesktopWindow)); ScreenshotRegionCommand = new DelegateCommand(async() => await screenShotModel.ScreenshotRegion()); ScreenshotWindowCommand = new DelegateCommand(async() => await screenShotModel.ScreenshotWindow()); ScreenshotScreenCommand = new DelegateCommand(async() => await screenShotModel.ScreenshotScreen()); }
public ConsoleManager(Settings Settings, RecordingModel RecordingModel, MainModel MainModel, ScreenShotModel ScreenShotModel, VideoSourcesViewModel VideoSourcesViewModel, IEnumerable <IVideoSourceProvider> VideoSourceProviders, VideoWritersViewModel VideoWritersViewModel, IPlatformServices PlatformServices, WebcamModel WebcamModel, IMessageProvider MessageProvider) { _settings = Settings; _recordingModel = RecordingModel; _mainModel = MainModel; _screenShotModel = ScreenShotModel; _videoSourcesViewModel = VideoSourcesViewModel; _videoSourceProviders = VideoSourceProviders; _videoWritersViewModel = VideoWritersViewModel; _platformServices = PlatformServices; _webcamModel = WebcamModel; _messageProvider = MessageProvider; // Hide on Full Screen Screenshot doesn't work on Console Settings.UI.HideOnFullScreenShot = false; }
public WebcamPage(WebcamModel WebcamModel, ScreenShotModel ScreenShotModel, IPlatformServices PlatformServices) { _webcamModel = WebcamModel; _screenShotModel = ScreenShotModel; _platformServices = PlatformServices; InitializeComponent(); }
public WebcamPage(WebcamModel WebcamModel, ScreenShotModel ScreenShotModel, IPlatformServices PlatformServices, WebcamOverlaySettings WebcamSettings) { _webcamModel = WebcamModel; _screenShotModel = ScreenShotModel; _platformServices = PlatformServices; _reactor = new WebcamOverlayReactor(WebcamSettings); Loaded += OnLoaded; InitializeComponent(); }
public RememberByName(Settings Settings, VideoSourcesViewModel VideoSourcesViewModel, VideoWritersViewModel VideoWritersViewModel, AudioSource AudioSource, ScreenShotModel ScreenShotModel, IEnumerable <IVideoSourceProvider> VideoSourceProviders, WebcamModel WebcamModel) { _settings = Settings; _videoSourcesViewModel = VideoSourcesViewModel; _videoWritersViewModel = VideoWritersViewModel; _audioSource = AudioSource; _screenShotModel = ScreenShotModel; _videoSourceProviders = VideoSourceProviders; _webcamModel = WebcamModel; }
public RememberByName(Settings.Settings settings, VideoSourcesViewModel videoSourcesViewModel, VideoWritersViewModel videoWritersViewModel, AudioSource audioSource, IWebCamProvider webCamProvider, ScreenShotModel screenShotModel, IEnumerable <IVideoSourceProvider> videoSourceProviders) { _settings = settings; _videoSourcesViewModel = videoSourcesViewModel; _videoWritersViewModel = videoWritersViewModel; _audioSource = audioSource; _webCamProvider = webCamProvider; _screenShotModel = screenShotModel; _videoSourceProviders = videoSourceProviders; }
public WebCamWindow(WebcamModel WebcamModel, ScreenShotModel ScreenShotModel, IPlatformServices PlatformServices) { _webcamModel = WebcamModel; _screenShotModel = ScreenShotModel; _platformServices = PlatformServices; InitializeComponent(); Closing += (S, E) => { Hide(); E.Cancel = true; }; }
public ConsoleManager(Settings Settings, RecordingModel RecordingModel, MainModel MainModel, ScreenShotModel ScreenShotModel, VideoSourcesViewModel VideoSourcesViewModel, IEnumerable <IVideoSourceProvider> VideoSourceProviders, IWebCamProvider WebCamProvider, VideoWritersViewModel VideoWritersViewModel) { _settings = Settings; _recordingModel = RecordingModel; _mainModel = MainModel; _screenShotModel = ScreenShotModel; _videoSourcesViewModel = VideoSourcesViewModel; _videoSourceProviders = VideoSourceProviders; _webCamProvider = WebCamProvider; _videoWritersViewModel = VideoWritersViewModel; // Hide on Full Screen Screenshot doesn't work on Console Settings.UI.HideOnFullScreenShot = false; }
public ConsoleManager(Settings settings, RecordingModel recordingModel, MainModel mainModel, ScreenShotModel screenShotModel, VideoSourcesViewModel videoSourcesViewModel, IEnumerable <IVideoSourceProvider> videoSourceProviders, IWebCamProvider webCamProvider, VideoWritersViewModel videoWritersViewModel, IPlatformServices platformServices) { _settings = settings; _recordingModel = recordingModel; _mainModel = mainModel; _screenShotModel = screenShotModel; _videoSourcesViewModel = videoSourcesViewModel; _videoSourceProviders = videoSourceProviders; _webCamProvider = webCamProvider; _videoWritersViewModel = videoWritersViewModel; _platformServices = platformServices; // Hide on Full Screen Screenshot doesn't work on Console settings.Ui.HideOnFullScreenShot = false; }
void OnEnable() { if(model == null) model = new ScreenShotModel(); model.GetActiveCameras(); }