private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if (selectedDeck == null) { return; } Logger.WriteLine("Creating screenshot of " + selectedDeck.GetSelectedDeckVersion().GetDeckInfo(), "Screenshot"); var screenShotWindow = new PlayerWindow(Core.Game, selectedDeck.GetSelectedDeckVersion().Cards.ToSortedCardList()); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if (source == null) { return; } //adjusting the DPI is apparently no longer/not necessary? var dpiX = 96.0; //* source.CompositionTarget.TransformToDevice.M11; var dpiY = 96.0; //* source.CompositionTarget.TransformToDevice.M22; var deck = selectedDeck.GetSelectedDeckVersion(); var pngEncoder = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer, 96, 96, deck.Name); screenShotWindow.Shutdown(); SaveOrUploadScreenshot(pngEncoder, deck.Name); }
private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if (selectedDeck == null) { return; } Log.Info("Creating screenshot of " + selectedDeck.GetSelectedDeckVersion().GetDeckInfo()); var screenShotWindow = new PlayerWindow(Core.Game, selectedDeck.GetSelectedDeckVersion().Cards.ToSortedCardList()); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if (source == null) { return; } var deck = selectedDeck.GetSelectedDeckVersion(); var pngEncoder = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer.ItemsControl, 96, 96, deck.Name); screenShotWindow.Shutdown(); await SaveOrUploadScreenshot(pngEncoder, deck.Name); }
private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if(selectedDeck == null) return; Logger.WriteLine("Creating screenshot of " + selectedDeck.GetSelectedDeckVersion().GetDeckInfo(), "Screenshot"); var screenShotWindow = new PlayerWindow(Core.Game, selectedDeck.GetSelectedDeckVersion().Cards.ToSortedCardList()); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if(source == null) return; var deck = selectedDeck.GetSelectedDeckVersion(); var pngEncoder = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer, 96, 96, deck.Name); screenShotWindow.Shutdown(); await SaveOrUploadScreenshot(pngEncoder, deck.Name); }
private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if(selectedDeck == null) return; Logger.WriteLine("Creating screenshot of " + selectedDeck.GetSelectedDeckVersion().GetDeckInfo(), "Screenshot"); var screenShotWindow = new PlayerWindow(Core.Game, selectedDeck.GetSelectedDeckVersion().Cards.ToSortedCardList()); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if(source == null) return; //adjusting the DPI is apparently no longer/not necessary? var dpiX = 96.0; //* source.CompositionTarget.TransformToDevice.M11; var dpiY = 96.0; //* source.CompositionTarget.TransformToDevice.M22; var deck = selectedDeck.GetSelectedDeckVersion(); var pngEncoder = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer, 96, 96, deck.Name); screenShotWindow.Shutdown(); SaveOrUploadScreenshot(pngEncoder, deck.Name); }
private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if(selectedDeck == null) return; Logger.WriteLine("Creating screenshot of " + selectedDeck.GetSelectedDeckVersion().GetDeckInfo(), "Screenshot"); var screenShotWindow = new PlayerWindow(Core.Game, selectedDeck.GetSelectedDeckVersion().Cards.ToSortedCardList()); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if(source == null) return; //adjusting the DPI is apparently no longer/not necessary? var dpiX = 96.0; //* source.CompositionTarget.TransformToDevice.M11; var dpiY = 96.0; //* source.CompositionTarget.TransformToDevice.M22; var deck = selectedDeck.GetSelectedDeckVersion(); var pngEncoder = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer, 96, 96, deck.Name); screenShotWindow.Shutdown(); if(pngEncoder != null) { var saveOperation = await this.ShowScreenshotUploadSelectionDialog(); var tmpFile = new FileInfo(Path.Combine(Config.Instance.DataDir, string.Format("tmp{0}.png", DateTime.Now.ToFileTime()))); var fileName = saveOperation.SaveLocal ? Helper.ShowSaveFileDialog(Helper.RemoveInvalidFileNameChars(deck.Name), "png") : tmpFile.FullName; if(fileName != null) { string imgurUrl = null; using(var ms = new MemoryStream()) using(var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write)) { pngEncoder.Save(ms); ms.WriteTo(fs); if(saveOperation.Upload) { var controller = await this.ShowProgressAsync("Uploading...", ""); imgurUrl = await Imgur.Upload(Config.Instance.ImgurClientId, ms, deck.Name); await controller.CloseAsync(); } } if(imgurUrl != null) { await this.ShowSavedAndUploadedFileMessage(saveOperation.SaveLocal ? fileName : null, imgurUrl); Logger.WriteLine("Uploaded screenshot to " + imgurUrl, "Export"); } else await this.ShowSavedFileMessage(fileName); Logger.WriteLine("Saved screenshot of " + deck.GetDeckInfo() + " to file: " + fileName, "Export"); } if(tmpFile.Exists) { try { tmpFile.Delete(); } catch(Exception ex) { Logger.WriteLine(ex.ToString(), "ExportScreenshot"); } } } }
private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if (selectedDeck == null) { return; } Logger.WriteLine("Creating screenshot of " + selectedDeck.GetSelectedDeckVersion().GetDeckInfo(), "Screenshot"); var screenShotWindow = new PlayerWindow(Core.Game, selectedDeck.GetSelectedDeckVersion().Cards.ToSortedCardList()); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if (source == null) { return; } //adjusting the DPI is apparently no longer/not necessary? var dpiX = 96.0; //* source.CompositionTarget.TransformToDevice.M11; var dpiY = 96.0; //* source.CompositionTarget.TransformToDevice.M22; var deck = selectedDeck.GetSelectedDeckVersion(); var pngEncoder = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer, 96, 96, deck.Name); screenShotWindow.Shutdown(); if (pngEncoder != null) { var saveOperation = await this.ShowScreenshotUploadSelectionDialog(); var tmpFile = new FileInfo(Path.Combine(Config.Instance.DataDir, string.Format("tmp{0}.png", DateTime.Now.ToFileTime()))); var fileName = saveOperation.SaveLocal ? Helper.ShowSaveFileDialog(Helper.RemoveInvalidFileNameChars(deck.Name), "png") : tmpFile.FullName; if (fileName != null) { string imgurUrl = null; using (var ms = new MemoryStream()) using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write)) { pngEncoder.Save(ms); ms.WriteTo(fs); if (saveOperation.Upload) { var controller = await this.ShowProgressAsync("Uploading...", ""); imgurUrl = await Imgur.Upload(Config.Instance.ImgurClientId, ms, deck.Name); await controller.CloseAsync(); } } if (imgurUrl != null) { await this.ShowSavedAndUploadedFileMessage(saveOperation.SaveLocal?fileName : null, imgurUrl); Logger.WriteLine("Uploaded screenshot to " + imgurUrl, "Export"); } else { await this.ShowSavedFileMessage(fileName); } Logger.WriteLine("Saved screenshot of " + deck.GetDeckInfo() + " to file: " + fileName, "Export"); } if (tmpFile.Exists) { try { tmpFile.Delete(); } catch (Exception ex) { Logger.WriteLine(ex.ToString(), "ExportScreenshot"); } } } }