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; }
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; } }
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(); }
public FilmingCardForMG(FilmingCard card) { filmingCard = card; ModifyUIForMG(); }