/// <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); } } }
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); }); }