Beispiel #1
0
        public async Task Capture()
        {
            var capturer = new ScreenCapturerWin();

            capturer.GetNextFrame();
            Process.Start("msg", "* test");
            await Task.Delay(500);

            capturer.GetNextFrame();
            var diffArea = ImageUtils.GetDiffArea(capturer.CurrentFrame, capturer.PreviousFrame, false);

            if (diffArea.IsEmpty)
            {
                return;
            }
            using (var newImage = capturer.CurrentFrame.Clone(diffArea, PixelFormat.Format32bppArgb))
            {
                if (capturer.CaptureFullscreen)
                {
                    capturer.CaptureFullscreen = false;
                }

                newImage.Save(Path.Combine(Path.GetTempPath(), "!ImageDiff.jpg"), ImageFormat.Jpeg);
                capturer.CurrentFrame.Save(Path.Combine(Path.GetTempPath(), "!Current.jpg"), ImageFormat.Jpeg);
                capturer.PreviousFrame.Save(Path.Combine(Path.GetTempPath(), "!Previous.jpg"), ImageFormat.Jpeg);
            }
        }
Beispiel #2
0
        public async Task EncodingSizeTests()
        {
            await Task.Delay(5000);

            var screen = _capturer.GetNextFrame();
            //var a = ImageUtils.EncodeWithSkia(screen, SkiaSharp.SKEncodedImageFormat.Jpeg, 70);
            //Debug.WriteLine("JPEG Size: " + a.Length.ToString("N0"));
            //var b = ImageUtils.EncodeWithSkia(screen, SkiaSharp.SKEncodedImageFormat.Webp, 70);
            //Debug.WriteLine("WEBP Size: " + b.Length.ToString("N0"));
        }