Beispiel #1
0
        public byte[] GetSnapshot(int width, int height, SnapshotFormat format)
        {
            if (DesktopFrameBuffer == null || DesktopFrameBuffer.Length <= 0 || IsDesktopImageBufferEmpty)
            {
                return(null);
            }

            var span = new ReadOnlySpan <byte>(DesktopFrameBuffer);

            using var ms    = new MemoryStream();
            using var image = SixLabors.ImageSharp.Image.LoadPixelData <Bgra32>(span, DesktopWidth, DesktopHeight);
            {
                image.Mutate(x => x
                             .Resize(width, height));

                switch (format)
                {
                case SnapshotFormat.Jpeg:
                    image.SaveAsJpeg(ms);
                    break;

                case SnapshotFormat.Png:
                default:
                    image.SaveAsPng(ms);
                    break;
                }
            }
            return(ms.ToArray());
        }
Beispiel #2
0
 public SnapshotContext(String path, SnapshotFormat format, int quality)
 {
     Path = path.Replace('/', '\\');
     if (Path[Path.Length - 1] == '\\')
         Path = Path.Substring(0, Path.Length - 1);
     Format = format;
     Quality = quality;
 }
Beispiel #3
0
        /// <summary>
        ///     Take a snapshot.
        /// </summary>
        /// <param name="path"></param>
        /// <param name="format"></param>
        /// <param name="quality"></param>
        public void TakeSnapshot(string path, SnapshotFormat format, int quality = 100)
        {
            ThrowIfNotInitialize();

            switch (VlcMediaPlayer.State)
            {
            case MediaState.NothingSpecial:
            case MediaState.Opening:
            case MediaState.Buffering:
            case MediaState.Stopped:
            case MediaState.Ended:
            case MediaState.Error:
                break;

            case MediaState.Playing:
            case MediaState.Paused:
                _snapshotContext = new SnapshotContext(path, format, quality);
                break;
            }
        }
Beispiel #4
0
        /// <summary>
        ///     Take a snapshot.
        /// </summary>
        /// <param name="path"></param>
        /// <param name="format"></param>
        /// <param name="quality"></param>
        public void TakeSnapshot(String path, SnapshotFormat format, int quality)
        {
            if (VlcMediaPlayer != null)
            {
                switch (VlcMediaPlayer.State)
                {
                case MediaState.NothingSpecial:
                case MediaState.Opening:
                case MediaState.Buffering:
                case MediaState.Stopped:
                case MediaState.Ended:
                case MediaState.Error:
                    break;

                case MediaState.Playing:
                case MediaState.Paused:
                    _snapshotContext = new SnapshotContext(path, format, quality);
                    break;
                }
            }
        }
        /// <summary>
        ///     Take a snapshot.
        /// </summary>
        /// <param name="path"></param>
        /// <param name="format"></param>
        /// <param name="quality"></param>
        public void TakeSnapshot(string path, SnapshotFormat format, int quality)
        {
            if (VlcMediaPlayer == null)
            {
                throw new InvalidOperationException("VlcMediaPlayer doesn't have initialize.");
            }

            switch (VlcMediaPlayer.State)
            {
            case MediaState.NothingSpecial:
            case MediaState.Opening:
            case MediaState.Buffering:
            case MediaState.Stopped:
            case MediaState.Ended:
            case MediaState.Error:
                break;

            case MediaState.Playing:
            case MediaState.Paused:
                _snapshotContext = new SnapshotContext(path, format, quality);
                break;
            }
        }
Beispiel #6
0
 public void TakeSnapshot(String path, SnapshotFormat format, int quality)
 {
     switch (VlcMediaPlayer.State)
     {
         case MediaState.NothingSpecial:
         case MediaState.Opening:
         case MediaState.Buffering:
         case MediaState.Stopped:
         case MediaState.Ended:
         case MediaState.Error:
             break;
         case MediaState.Playing:
         case MediaState.Paused:
             _snapshotContext = new SnapshotContext(path, format, quality);
             break;
     }
 }
Beispiel #7
0
 public SnapshotContext(String path, SnapshotFormat format, int quality)
 {
     Path    = path.FormatPath();
     Format  = format;
     Quality = quality;
 }
Beispiel #8
0
 public SnapshotContext(String path, SnapshotFormat format, int quality)
 {
     Path = path.FormatPath();
     Format = format;
     Quality = quality;
 }