private void lvInputFiles_SelectedIndexChanged(object sender, EventArgs e) { nudSlideDuration.ValueChanged -= nudSlideDuration_ValueChanged; cmbSlideRotation.SelectedIndexChanged -= cmbSlideRotation_SelectedIndexChanged; cmbVisualEffect.SelectedIndexChanged -= cmbVisualEffect_SelectedIndexChanged; cmbVisualEffectTransition.SelectedIndexChanged -= cmbVisualEffectTransition_SelectedIndexChanged; nudVisualEffectDuration.ValueChanged -= nudVisualEffectDuration_ValueChanged; cmbTransitionEffectBefore.SelectedIndexChanged -= cmbTransitionEffectBefore_SelectedIndexChanged; nudTransitionEffectBeforeDuration.ValueChanged -= nudTransitionEffectBeforeDuration_ValueChanged; cbTransitionEffectBeforeRandom.CheckedChanged -= cbTransitionEffectBeforeRandom_CheckedChanged; cmbTransitionEffectAfter.SelectedIndexChanged -= cmbTransitionEffectAfter_SelectedIndexChanged; nudTransitionEffectAfterDuration.ValueChanged -= nudTransitionEffectAfterDuration_ValueChanged; cbTransitionEffectAfterRandom.CheckedChanged -= cbTransitionEffectAfterRandom_CheckedChanged; ListView.SelectedListViewItemCollection selectedItems = lvInputFiles.SelectedItems; if (selectedItems.Count > 0) { SlideOptions slideOptions = (SlideOptions)selectedItems[0].Tag; nudSlideDuration.Value = slideOptions.SlideDuration; cmbSlideRotation.SelectedIndex = (int)slideOptions.SlideRotation; cmbVisualEffect.SelectedIndex = (int)slideOptions.VisualEffect; cmbVisualEffectTransition.SelectedIndex = (int)slideOptions.VisualEffectTransition; nudVisualEffectDuration.Value = slideOptions.VisualEffectDuration; cmbTransitionEffectBefore.SelectedIndex = (int)slideOptions.TransitionEffectBefore + 1; nudTransitionEffectBeforeDuration.Value = slideOptions.TransitionEffectBeforeDuration; cbTransitionEffectBeforeRandom.Checked = slideOptions.RandomTransitionEffectBefore; cmbTransitionEffectAfter.SelectedIndex = (int)slideOptions.TransitionEffectAfter + 1; nudTransitionEffectAfterDuration.Value = slideOptions.TransitionEffectAfterDuration; cbTransitionEffectAfterRandom.Checked = slideOptions.RandomTransitionEffectAfter; nudSlideDuration.ValueChanged += nudSlideDuration_ValueChanged; cmbSlideRotation.SelectedIndexChanged += cmbSlideRotation_SelectedIndexChanged; cmbVisualEffect.SelectedIndexChanged += cmbVisualEffect_SelectedIndexChanged; cmbVisualEffectTransition.SelectedIndexChanged += cmbVisualEffectTransition_SelectedIndexChanged; nudVisualEffectDuration.ValueChanged += nudVisualEffectDuration_ValueChanged; cmbTransitionEffectBefore.SelectedIndexChanged += cmbTransitionEffectBefore_SelectedIndexChanged; nudTransitionEffectBeforeDuration.ValueChanged += nudTransitionEffectBeforeDuration_ValueChanged; cbTransitionEffectBeforeRandom.CheckedChanged += cbTransitionEffectBeforeRandom_CheckedChanged; cmbTransitionEffectAfter.SelectedIndexChanged += cmbTransitionEffectAfter_SelectedIndexChanged; nudTransitionEffectAfterDuration.ValueChanged += nudTransitionEffectAfterDuration_ValueChanged; cbTransitionEffectAfterRandom.CheckedChanged += cbTransitionEffectAfterRandom_CheckedChanged; } }
private void btnCreateMovie_Click(object sender, EventArgs e) { if (!_imageToVideo.IsRunning) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "WMV files (*.wmv)|*.wmv|AVI files (*.avi)|*.avi|All files (*.*)|*.*"; if (tabControl2.SelectedIndex == 0) { dlg.DefaultExt = "*.wmv"; dlg.FilterIndex = 1; } else { dlg.DefaultExt = "*.avi"; dlg.FilterIndex = 2; } dlg.FileName = "movie"; dlg.Title = "Save generated video as"; if (String.IsNullOrEmpty(Settings.Default.LastUsedFolder2)) { Settings.Default.LastUsedFolder2 = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); } dlg.InitialDirectory = Settings.Default.LastUsedFolder2; if (dlg.ShowDialog() == DialogResult.OK) { Settings.Default.LastUsedFolder2 = Path.GetDirectoryName(dlg.FileName); int intValue; float floatValue; _imageToVideo.AutoFitImages = cbAutoFitImages.Checked; _imageToVideo.KeepAspectRatio = cbKeepAspectRatio.Checked; _imageToVideo.BackgroundColor = (uint)ColorTranslator.ToOle(btnBackgroundColor.BackColor); if (tbBackgroundImage.Text.Length > 0) { _imageToVideo.SetBackgroundPictureFileName(tbBackgroundImage.Text); } if (int.TryParse(tbMovieWidth.Text, out intValue)) { _imageToVideo.OutputWidth = intValue; } if (int.TryParse(tbMovieHeight.Text, out intValue)) { _imageToVideo.OutputHeight = intValue; } if (tbAudioTrack.Text.Length > 0) { _imageToVideo.ExternalAudioTrackFromFileName = tbAudioTrack.Text; } _imageToVideo.CurrentAudioCodec = cmbAviAudioCodecs.SelectedIndex; _imageToVideo.CurrentVideoCodec = cmbAviVideoCodecs.SelectedIndex; _imageToVideo.CurrentWMVAudioCodec = cmbWmvAudioCodecs.SelectedIndex; _imageToVideo.CurrentWMVAudioFormat = cmbWmvAudioFormats.SelectedIndex; _imageToVideo.CurrentWMVVideoCodec = cmbWmvVideoCodecs.SelectedIndex; if (int.TryParse(tbBitrate.Text, out intValue)) { _imageToVideo.WMVVideoBitrate = intValue * 1024; } if (float.TryParse(tbFPS.Text, out floatValue)) { _imageToVideo.FPS = floatValue; } _outputFile = dlg.FileName; _imageToVideo.OutputVideoFileName = _outputFile; _imageToVideo.SetProgressNotifyWindow(Handle.ToInt32(), WM_CONVERSION_PROGRESS, 0); _imageToVideo.Slides.Clear(); foreach (ListViewItem item in lvInputFiles.Items) { SlideOptions slideInfo = (SlideOptions)item.Tag; Slide slide = _imageToVideo.AddImageFromFileName(slideInfo.ImageFile); slide.Duration = slideInfo.SlideDuration; slide.RotationAngle = slideInfo.SlideRotation; slide.VisualEffect = slideInfo.VisualEffect; slide.Effect = slideInfo.VisualEffectTransition; slide.EffectDuration = slideInfo.VisualEffectDuration; slide.InEffect = slideInfo.RandomTransitionEffectBefore ? GetRandomEffect() : slideInfo.TransitionEffectBefore; slide.InEffectDuration = slideInfo.TransitionEffectBeforeDuration; slide.OutEffect = slideInfo.RandomTransitionEffectAfter ? GetRandomEffect() : slideInfo.TransitionEffectAfter; slide.OutEffectDuration = slideInfo.TransitionEffectAfterDuration; } _imageToVideo.Run(); toolStripStatusLabel1.Text = "Generating video..."; btnCreateMovie.Text = "Stop"; btnCreateMovie.Image = Resources.stop; } } else { // Stop generation _imageToVideo.Stop(); // wait a bit the converter finished and released resources while (_imageToVideo.IsRunning) { Thread.Sleep(200); } toolStripStatusLabel1.Text = "Interrupted by user."; btnCreateMovie.Text = "Create Movie"; btnCreateMovie.Image = Resources.film; toolStripProgressBar1.Value = 0; } }
void cbTransitionEffectAfterRandom_CheckedChanged(object sender, EventArgs e) { SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag; slideOptions.RandomTransitionEffectAfter = cbTransitionEffectAfterRandom.Checked; }
private void nudTransitionEffectAfterDuration_ValueChanged(object sender, EventArgs e) { SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag; slideOptions.TransitionEffectAfterDuration = (int)nudTransitionEffectAfterDuration.Value; }
private void cmbTransitionEffectAfter_SelectedIndexChanged(object sender, EventArgs e) { SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag; slideOptions.TransitionEffectAfter = (TransitionEffectType)(cmbTransitionEffectAfter.SelectedIndex - 1); }
private void cmbVisualEffectTransition_SelectedIndexChanged(object sender, EventArgs e) { SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag; slideOptions.VisualEffectTransition = (SlideEffectType)cmbVisualEffectTransition.SelectedIndex; }
private void cmbSlideRotation_SelectedIndexChanged(object sender, EventArgs e) { SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag; slideOptions.SlideRotation = (RotationAngle)cmbSlideRotation.SelectedIndex; }
private void btnAddFolder_Click(object sender, EventArgs e) { FolderBrowserDialog dlg = new FolderBrowserDialog(); dlg.Description = "Select Folder"; dlg.ShowNewFolderButton = false; if (String.IsNullOrEmpty(Settings.Default.LastUsedFolder)) { Settings.Default.LastUsedFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); } dlg.SelectedPath = Settings.Default.LastUsedFolder; if (dlg.ShowDialog() == DialogResult.OK) { Settings.Default.LastUsedFolder = dlg.SelectedPath; DirectoryInfo dir = new DirectoryInfo(dlg.SelectedPath); ListViewItem firstAddedItem = null; Cursor = Cursors.WaitCursor; Application.DoEvents(); lvInputFiles.BeginUpdate(); try { FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { string ext = file.Extension.ToLower(); if (ext == ".jpg" || ext == ".jpeg" || ext == ".png" || ext == ".bmp") { SlideOptions slideOptions = new SlideOptions(); slideOptions.ImageFile = file.FullName; ListViewItem item = new ListViewItem(Convert.ToString(lvInputFiles.Items.Count + 1)); item.SubItems.Add(Path.GetFileName(file.FullName)); item.Tag = slideOptions; lvInputFiles.Items.Add(item); if (firstAddedItem == null) { firstAddedItem = item; } } } if (firstAddedItem != null) { lvInputFiles.SelectedItems.Clear(); firstAddedItem.Selected = true; firstAddedItem.EnsureVisible(); } } finally { lvInputFiles.EndUpdate(); Cursor = Cursors.Default; } lvInputFiles.Select(); } }
private void btnAddImage_Click(object sender, EventArgs e) { ListViewItem firstAddedItem = null; OpenFileDialog dlg = new OpenFileDialog(); dlg.CheckFileExists = false; dlg.CheckPathExists = false; dlg.Filter = "Image Files(*.JPG;*.PNG;*.BMP)|*.JPG;*.JPEG;*.PNG;*.BMP;|JPEG Files(*.JPG)|*.JPG;*.JPEG|PNG Files(*.PNG)|*.PNG|BMP Files(*.BMP)|*.BMP|All files (*.*)|*.*"; dlg.Multiselect = true; dlg.SupportMultiDottedExtensions = true; dlg.Title = "Select Files"; if (String.IsNullOrEmpty(Settings.Default.LastUsedFolder)) { Settings.Default.LastUsedFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); } dlg.InitialDirectory = Settings.Default.LastUsedFolder; if (dlg.ShowDialog() == DialogResult.OK) { Settings.Default.LastUsedFolder = Path.GetDirectoryName(dlg.FileNames[0]); Cursor = Cursors.WaitCursor; lvInputFiles.BeginUpdate(); try { foreach (string file in dlg.FileNames) { SlideOptions slideOptions = new SlideOptions(); slideOptions.ImageFile = file; ListViewItem item = new ListViewItem(Convert.ToString(lvInputFiles.Items.Count + 1)); item.SubItems.Add(Path.GetFileName(file)); item.Tag = slideOptions; lvInputFiles.Items.Add(item); if (firstAddedItem == null) { firstAddedItem = item; } } if (firstAddedItem != null) { lvInputFiles.SelectedItems.Clear(); firstAddedItem.Selected = true; firstAddedItem.EnsureVisible(); } } finally { lvInputFiles.EndUpdate(); Cursor = Cursors.Default; } lvInputFiles.Select(); } }