static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Converting JPG slides to video, please wait...");

                // Create BytescoutImageToVideoLib.ImageToVideo object instance
                ImageToVideo converter = new ImageToVideo();

                // Activate the component
                converter.RegistrationName = "demo";
                converter.RegistrationKey  = "demo";

                // Set movie background picture
                converter.SetBackgroundPictureFileName("..\\..\\..\\..\\background.jpg");

                // Add images and set slide durations
                Slide slide;
                slide          = converter.AddImageFromFileName("..\\..\\..\\..\\slide1.jpg");
                slide.Duration = 3000;                 // 3000ms = 3s
                slide          = converter.AddImageFromFileName("..\\..\\..\\..\\slide2.jpg");
                slide.Duration = 3000;
                slide          = converter.AddImageFromFileName("..\\..\\..\\..\\slide3.jpg");
                slide.Duration = 3000;

                // Set output video size
                converter.OutputWidth  = 640;
                converter.OutputHeight = 480;

                // Set output video file name
                converter.OutputVideoFileName = "result.wmv";

                // Run the conversion
                converter.RunAndWait();

                // Release resources
                System.Runtime.InteropServices.Marshal.ReleaseComObject(converter);

                // Open the result video file in default media player
                Process.Start("result.wmv");

                Console.WriteLine("Conversion is done. Press any key to continue..");
                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.ToString());
                Console.WriteLine("\nPress any key to exit.");
                Console.ReadKey();
            }
        }
示例#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;
            }
        }