Пример #1
0
 public void Export()
 {
     try
     {
         AviExportComponent.Launch(this.Context.DesktopWindow, (ClipboardItem)this.Context.SelectedClipboardItems[0]);
     }
     catch (Exception e)
     {
         ExceptionHandler.Report(e, SR.MessageExportToVideoFailed, Context.DesktopWindow);
     }
 }
Пример #2
0
        internal static void Launch(IDesktopWindow desktopWindow, ClipboardItem clipboardItem)
        {
            Platform.CheckForNullReference(clipboardItem, "clipboardItem");
            IDisplaySet displaySet = clipboardItem.Item as IDisplaySet;

            if (displaySet == null)
            {
                throw new ArgumentException("The item being exported must be a display set.");
            }

            if (_progressComponentShelf != null)
            {
                desktopWindow.ShowMessageBox(SR.MessageVideoExportStillRunning, MessageBoxActions.Ok);
                return;
            }

            if (displaySet.PresentationImages.Count <= 1)
            {
                desktopWindow.ShowMessageBox(SR.MessageDisplaySetTooFewImagesForVideo, MessageBoxActions.Ok);
                return;
            }

            AviExportComponent component = new AviExportComponent(clipboardItem);

            component.LoadSettings();
            if (component.SelectedCodec == null)
            {
                desktopWindow.ShowMessageBox(SR.MessageNoAcceptableCodecsInstalled, MessageBoxActions.Ok);
                return;
            }

            // give the width and height values from the item to be exported
            foreach (IPresentationImage image in (displaySet.PresentationImages))
            {
                if (image is IImageGraphicProvider)
                {
                    IImageGraphicProvider imageGraphicProvider = (IImageGraphicProvider)image;
                    component.Height = imageGraphicProvider.ImageGraphic.Rows;
                    component.Width  = imageGraphicProvider.ImageGraphic.Columns;
                    break;
                }
            }

            if (ApplicationComponentExitCode.Accepted != LaunchAsDialog(desktopWindow, component, SR.TitleExportToVideo))
            {
                return;
            }

            component.Export();
        }