nature_net.configurations.GetThumbnailFromVideo C# (CSharp) Метод

GetThumbnailFromVideo() публичный статический Метод

public static GetThumbnailFromVideo ( string filename, TimeSpan interval, int height ) : ImageSource
filename string
interval TimeSpan
height int
Результат ImageSource
        public static ImageSource GetThumbnailFromVideo(string filename, TimeSpan interval, int height)
        {
            //configurations.the_flag++;
            MediaPlayer _mediaPlayer = new MediaPlayer();
            _mediaPlayer.MediaOpened += new EventHandler(configurations._mediaPlayer_MediaOpened);
            _mediaPlayer.BufferingEnded += new EventHandler(configurations._mediaPlayer_MediaOpened);
            _mediaPlayer.ScrubbingEnabled = true;
            _mediaPlayer.Open(new Uri(configurations.GetAbsoluteContributionPath() + filename));
            _mediaPlayer.Pause();
            //_mediaPlayer.Position = interval;
            System.Threading.Thread.Sleep(5 * 1000);

            //while (the_flag != 0) { System.Threading.Thread.Sleep(1000); }
            _mediaPlayer.Position = interval;
            ImageSource src = new BitmapImage(new Uri(configurations.GetAbsoluteImagePath() + video_image_pic));
            src.Freeze();
            //uint[] framePixels = new uint[width * height];
            // Render the current frame into a bitmap
            var drawingVisual = new DrawingVisual();
            try
            {
                int width = height;
                if (_mediaPlayer.NaturalVideoWidth * _mediaPlayer.NaturalVideoHeight != 0)
                    width = height * _mediaPlayer.NaturalVideoWidth / _mediaPlayer.NaturalVideoHeight;
                using (var drawingContext = drawingVisual.RenderOpen())
                {
                    drawingContext.DrawVideo(_mediaPlayer, new System.Windows.Rect(0, 0, width, height));
                    drawingContext.DrawImage(src, new System.Windows.Rect(0, 0, width, height));
                    //drawingContext.DrawVideo(_mediaPlayer, new System.Windows.Rect(0, 0, height, height));
                    //drawingContext.DrawImage(src, new System.Windows.Rect(0, 0, height, height));
                }
                var renderTargetBitmap = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
                //var renderTargetBitmap = new RenderTargetBitmap(height, height, 96, 96, PixelFormats.Default);
                renderTargetBitmap.Render(drawingVisual);
                return (ImageSource)renderTargetBitmap;
            }
            catch (Exception exc) { log.WriteErrorLog(exc); return null; }
        }