Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
        void cbTransitionEffectAfterRandom_CheckedChanged(object sender, EventArgs e)
        {
            SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag;

            slideOptions.RandomTransitionEffectAfter = cbTransitionEffectAfterRandom.Checked;
        }
Beispiel #4
0
        private void nudTransitionEffectAfterDuration_ValueChanged(object sender, EventArgs e)
        {
            SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag;

            slideOptions.TransitionEffectAfterDuration = (int)nudTransitionEffectAfterDuration.Value;
        }
Beispiel #5
0
        private void cmbTransitionEffectAfter_SelectedIndexChanged(object sender, EventArgs e)
        {
            SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag;

            slideOptions.TransitionEffectAfter = (TransitionEffectType)(cmbTransitionEffectAfter.SelectedIndex - 1);
        }
Beispiel #6
0
        private void cmbVisualEffectTransition_SelectedIndexChanged(object sender, EventArgs e)
        {
            SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag;

            slideOptions.VisualEffectTransition = (SlideEffectType)cmbVisualEffectTransition.SelectedIndex;
        }
Beispiel #7
0
        private void cmbSlideRotation_SelectedIndexChanged(object sender, EventArgs e)
        {
            SlideOptions slideOptions = (SlideOptions)lvInputFiles.SelectedItems[0].Tag;

            slideOptions.SlideRotation = (RotationAngle)cmbSlideRotation.SelectedIndex;
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #9
0
        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();
            }
        }