/// <summary>
        /// Sets the entry thumbnail.
        /// Deletes the prior thumbnail file is found or previously set.
        /// </summary>
        /// <param name="mediaUrl">The media URL.</param>
        /// <param name="bitmap">The bitmap.</param>
        public void AddOrUpdateEntryThumbnail(string mediaUrl, BitmapDataBuffer bitmap)
        {
            lock (SyncRoot)
            {
                var entry = FindEntryByMediaUrl(mediaUrl);
                if (entry == null)
                {
                    return;
                }

                if (entry.Thumbnail != null)
                {
                    var existingThumbnailFilePath = Path.Combine(ViewModel.ThumbsDirectory, entry.Thumbnail);
                    if (File.Exists(existingThumbnailFilePath))
                    {
                        File.Delete(existingThumbnailFilePath);
                    }

                    entry.Thumbnail = null;
                }

                using (var bmp = bitmap.CreateDrawingBitmap())
                {
                    entry.Thumbnail = ThumbnailGenerator.SnapThumbnail(bmp, ViewModel.ThumbsDirectory);
                }
            }
        }
Example #2
0
        private void TakeScreenshot()
        {
            string path;
            string filePrefix = tbxFilePrefix.Text.Trim();

            if (filePrefix.Length == 0)
            {
                MessageBox.Show("Check targetpath!");
                return;
            }

            var captureTime = videoCreated + me.Position;

            do
            {
                string fileName = string.Format(" {0}.png", Convert(captureTime));
                path = filePrefix + fileName;

                captureTime = captureTime.AddMilliseconds(1);
            } while (File.Exists(path));

            rect.Fill = Brushes.Black;
            Task.Factory.StartNew(() => {
                bmpBuffer.CreateDrawingBitmap().Save(path);
                Dispatcher.Invoke(() => rect.Fill = Brushes.Transparent);
            });
        }