示例#1
0
        void Remember()
        {
            // Remember Video Source
            Settings.Video.SourceKind = VideoViewModel.SelectedVideoSourceKind.Name;

            switch (VideoViewModel.SelectedVideoSourceKind)
            {
            case RegionSourceProvider _:
                var rect = _regionProvider.SelectedRegion;
                Settings.Video.Source = RectangleConverter.ConvertToInvariantString(rect);
                break;

            default:
                Settings.Video.Source = VideoViewModel.SelectedVideoSource.ToString();
                break;
            }

            // Remember Video Codec
            Settings.Video.WriterKind = VideoViewModel.SelectedVideoWriterKind.Name;
            Settings.Video.Writer     = VideoViewModel.SelectedVideoWriter.ToString();

            // Remember Audio Sources
            Settings.Audio.Microphone = AudioSource.SelectedRecordingSource.ToString();
            Settings.Audio.Speaker    = AudioSource.SelectedLoopbackSource.ToString();

            // Remember ScreenShot Format
            Settings.ScreenShots.ImageFormat = SelectedScreenShotImageFormat.ToString();

            // Remember ScreenShot Target
            Settings.ScreenShots.SaveTarget = VideoViewModel.SelectedImageWriter.ToString();

            // Remember Webcam
            Settings.Video.Webcam = WebCamProvider.SelectedCam.Name;
        }
示例#2
0
        public void SaveScreenShot(Bitmap bmp)
        {
            // Save to Disk or Clipboard
            if (bmp != null)
            {
                if (SelectedScreenShotSaveTo == "Clipboard")
                {
                    bmp.WriteToClipboard(SelectedScreenShotImageFormat.Equals(ImageFormat.Png));
                    Status = "Image Saved to Clipboard";
                }
                else // Save to Disk
                {
                    try
                    {
                        EnsureOutPath();

                        var extension = SelectedScreenShotImageFormat.Equals(ImageFormat.Icon) ? "ico"
                            : SelectedScreenShotImageFormat.Equals(ImageFormat.Jpeg) ? "jpg"
                            : SelectedScreenShotImageFormat.ToString().ToLower();

                        var fileName = Path.Combine(Settings.OutPath, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + "." + extension);

                        bmp.Save(fileName, SelectedScreenShotImageFormat);
                        Status = "Image Saved to Disk";
                        RecentViewModel.Add(fileName, RecentItemType.Image);

                        SystemTrayManager.ShowNotification("ScreenShot Saved", Path.GetFileName(fileName), 3000, () => Process.Start(fileName));
                    }
                    catch (Exception E)
                    {
                        Status = "Not Saved. " + E.Message;
                    }
                }

                bmp.Dispose();
            }
            else
            {
                Status = "Not Saved - Image taken was Empty";
            }
        }