Beispiel #1
0
        //private MedViewerControlCell GetControlCell(MedViewerLayoutCell layoutCell)
        //{
        //    MedViewerControlCell cell = null;
        //    foreach (MedViewerControlCell tmp in layoutCell.ControlCells)
        //    {
        //        if (tmp != null
        //            && tmp.Image != null
        //            && tmp.Image.CurrentPage != null)
        //        {
        //            cell = tmp;
        //            break;
        //        }
        //    }

        //    if (cell == null)
        //    {
        //        MedViewerLogger.Instance.LogDevError(MedViewerLogger.Source, "No image displayed, cannot save image as DICOM.");
        //        return null;
        //    }


        //    return cell;
        //}

        private WriteableBitmap RenderControlWriteableBitmap()
        {
            try
            {
                Logger.LogFuncUp();

                var screenSaver = new MedViewerScreenSaver(medViewerControl);
                //BitmapSource bmp = screenSaver.RenderViewerControlToBitmap(new Size(800, 1000));    //8 inch * 10 inch
                //BitmapSource bmp = screenSaver.RenderViewerControlToBitmap(medViewerControl.DesiredSize);
                BitmapSource bmp = screenSaver.RenderViewerControlToBitmap(_renderSize, false, true);
                Console.WriteLine(_renderSize);
                if (bmp == null)
                {
                    return(null);
                }

                var wtb = new WriteableBitmap(new FormatConvertedBitmap(bmp, PixelFormats.Gray8, null, 0));
                Console.WriteLine(wtb.Width);
                Console.WriteLine(wtb.Height);

                Logger.LogFuncDown();

                return(wtb);
            }
            catch (Exception ex)
            {
                Logger.LogFuncException(ex.Message + ex.StackTrace);
                throw;
            }
        }
Beispiel #2
0
        /// <summary>
        /// 胶片截屏
        /// </summary>
        /// <param name="viewerControlSize"></param>
        /// <param name="filmingPagePageControl"></param>
        /// <param name="filmingViewerControl"></param>
        /// <param name="ifSaveImageAsGreyScale"></param>
        /// <returns></returns>
        private WriteableBitmap RenderViewerControlToBitmap(Size viewerControlSize,
                                                            FilmPageControl filmingPagePageControl,
                                                            MedViewerControl filmingViewerControl,
                                                            bool ifSaveImageAsGreyScale = true)
        {
            try
            {
                Logger.LogFuncUp();

                MedViewerScreenSaver viewerScreenSaver = new MedViewerScreenSaver(filmingViewerControl);

                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;
            }
        }
Beispiel #3
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;
            }
        }