Example #1
0
        public static WriteableBitmap RenderToBitmap(Size filmSize,
                                                     FilmingPageTitle pageTitle,
                                                     FilmingCard filmingCard,
                                                     FilmingPageControl filmingPageControl,
                                                     MedViewerControl medViewerControl,
                                                     Grid filmingPageBarGrid, bool DoingForceRender = true,
                                                     bool ifSaveImageAsGreyScale = true)
        {
            try
            {
                Logger.LogFuncUp();

                double scale = filmSize.Height > filmSize.Width
                    ? FilmingUtility.HEADER_PERCENTAGE_OF_FILMPAGE
                    : FilmingUtility.HEADER_PERCENTAGE_OF_FILMPAGE * filmSize.Width / filmSize.Height;

                if (filmingCard._filmingCardModality == FilmingUtility.EFilmModality ||
                    pageTitle.DisplayPosition == "0")
                {
                    scale = 0;
                }

                var viewerControlSize = new Size((int)filmSize.Width, (int)filmSize.Height * (1 - scale));
                //   FilmingHelper.PrintTimeInfo("start render MedViewer");
                var viewerControlBitmap = RenderViewerControlToBitmap(viewerControlSize, filmingCard, filmingPageControl, medViewerControl, DoingForceRender, ifSaveImageAsGreyScale);
                //  FilmingHelper.PrintTimeInfo("End render MedViewer");
                var headerSize = new Size(viewerControlBitmap.PixelWidth, (int)filmSize.Height * scale);
                //   FilmingHelper.PrintTimeInfo("start render Header");
                WriteableBitmap headerBitmap = null;

                WriteableBitmap filmpageBitmap;
                if (pageTitle.DisplayPosition == "0")  //no film page bar
                {
                    filmpageBitmap = viewerControlBitmap;
                    Logger.LogFuncDown();
                    return(filmpageBitmap);
                }

                headerBitmap = RenderHeaderToBitmap(headerSize, filmingPageBarGrid, ifSaveImageAsGreyScale);

                if (pageTitle.DisplayPosition == "2")    //film page bar at bottom
                {
                    filmpageBitmap = RenderBitmapHelper.StitchBitmapsHorizontally(ifSaveImageAsGreyScale, viewerControlBitmap, headerBitmap);
                }
                else //if (DisplayPosition == "1")    //film page bar on top
                {
                    filmpageBitmap = RenderBitmapHelper.StitchBitmapsHorizontally(ifSaveImageAsGreyScale, headerBitmap, viewerControlBitmap);
                }

                Logger.LogFuncDown();

                return(filmpageBitmap);
            }
            catch (Exception ex)
            {
                Logger.LogFuncException(ex.Message + ex.StackTrace);
                throw;
            }
        }
        public ActionToolPanel(FilmingCard _card, string modality)
        {
            Card        = _card;
            CurModality = modality;
            InitializeComponent();

            _customRotation = new CustomRotation();
        }
        private void InterleavedDeleteWindow_Loaded(object sender, RoutedEventArgs e)
        {
            FactTextBox = FindChild <TextBox>(EveryTextBox, "TextBox");
            if (FactTextBox != null)
            {
                FactTextBox.Focus();
                FactTextBox.TextChanged += FactTextBox_ValueChanged;
            }

            filmingCard = FilmingViewerContainee.FilmingViewerWindow as FilmingCard;
        }
Example #4
0
        private void InitFilmingViewerApp()
        {
            try
            {
                Logger.LogFuncUp();
                Logger.LogInfo("UI showing up");
                Main = this;

                FilmingCard filmingWindow = new FilmingCard();

                _filmingViewerWindow = filmingWindow;
                ++filmingWindow.HostAdornerCount;

                GlobalData.MainDispatcher = Dispatcher.CurrentDispatcher;


                GlobalData.MainAddInControl   = filmingWindow;
                GlobalData.CommunicationProxy = Main.GetCommunicationProxy();

                GlobalData.MainDispatcher.UnhandledException += DispatcherOnUnhandledException;
                AppDomain.CurrentDomain.UnhandledException   += CurrentDomain_UnhandledException;

                //inform system manager Filming Viewer is up
                if (0 != SendSystemEvent("", (int)CLRContaineeEventId.SYSTEM_COMMAND_EVENT_ID_COMPONENT_READY, GetCommunicationProxy().GetName()))
                {
                    Logger.LogWarning("The event send to System manager fail,Please restart the FilmingFEContainee");
                }
                Logger.LogInfo("has informed system manager that FilmingViewer is up");

                Dispatcher.Run();

                Logger.LogFuncDown();
            }
            catch (Exception ex)
            {
                Logger.LogFuncException(ex.Message + ex.StackTrace);
                //MessageBox.Show(ex.StackTrace);
            }
            finally
            {
                //TO DO .. need confirm is neccery after REVIEW team refine BL
                //filmingWindow.Dispose();
                GlobalData.MainDispatcher.UnhandledException -= DispatcherOnUnhandledException;
                AppDomain.CurrentDomain.UnhandledException   -= CurrentDomain_UnhandledException;
            }
        }
Example #5
0
        public static WriteableBitmap RenderViewerControlToBitmap(Size viewerControlSize,
                                                                  FilmingCard filmingCard,
                                                                  FilmingPageControl filmingPageControl,
                                                                  MedViewerControl filmingViewerControl, bool DoingForceRender = true,
                                                                  bool ifSaveImageAsGreyScale = true)
        {
            try
            {
                Logger.LogFuncUp();


                Logger.LogFuncUp("Start DisplayFilmPage");
                filmingCard.DisplayFilmPage(filmingPageControl);
                Logger.LogFuncDown("End DisplayFilmPage");
                Logger.LogFuncUp("Start UpdateLayout");
                filmingCard.filmPageGrid.UpdateLayout();
                Logger.LogFuncDown("End UpdateLayout");

                MedViewerScreenSaver viewerScreenSaver = new MedViewerScreenSaver(filmingViewerControl);
                //viewerScreenSaver.IfDoingForceRender = DoingForceRender;       //设置Medview处是否ForceRender,优化1张胶片打印速度。
                Logger.LogFuncUp("Start RenderViewerControlToBitmap");
                BitmapSource viewerControlBitmap = viewerScreenSaver.RenderViewerControlToBitmap(viewerControlSize, Printers.Instance.IfPrintSplitterLine, true);

                Logger.LogFuncDown("End RenderViewerControlToBitmap");
                WriteableBitmap writableViewerControlBitmap = ifSaveImageAsGreyScale ?
                                                              new WriteableBitmap(new FormatConvertedBitmap(viewerControlBitmap, PixelFormats.Gray8, null, 0))
                    : new WriteableBitmap(new FormatConvertedBitmap(viewerControlBitmap, PixelFormats.Rgb24, null, 0));
                Logger.LogFuncDown();

                return(writableViewerControlBitmap);
            }
            catch (Exception ex)
            {
                Logger.LogFuncException(ex.Message + ex.StackTrace);
                throw;
            }
        }
 public FilmingCardPrintSetCtrl(FilmingCard _card)
 {
     Card = _card;
     InitializeComponent();
 }
Example #7
0
 public FilmingCardForMG(FilmingCard card)
 {
     filmingCard = card;
     ModifyUIForMG();
 }