void AdornedElement_Loaded(object sender, RoutedEventArgs e) { XRayView xrayView = sender as XRayView; if (xrayView != null) { _RulerStartPoint = new Point(0.025 * xrayView.ActualWidth, 0.975 * xrayView.ActualHeight); _RulerEndPoint = new Point(0.025 * xrayView.ActualWidth, 0.975 * xrayView.ActualHeight); } }
private void xrayview_AlgServerRequestEvent(object sender, AlgServerRequestEventArgs e) { XRayView xrayView = sender as XRayView; if (xrayView != null) { //uint[] data = pxeAccess.GetTrimatBuffer(xrayView.ViewName, (int)e.RequestType); //for (int i = 0; i < data.Length; i++) //{ // //Switch the Red and Blue Colors // uint newDataValue = data[i]; // uint redColor = newDataValue % 256; // uint blueColor = (newDataValue << 8) >> 24; // newDataValue = (newDataValue - redColor) - (blueColor << 16); // data[i] = (newDataValue + blueColor) + (redColor << 16); // data[i] += (uint)255 << 24; //} PixelFormat pixelFormat = PixelFormats.Rgb24; int pixelBytes = pixelFormat.BitsPerPixel / 8; int stride = (int)xrayView.Image.Source.Width * pixelBytes; uint[] data = _PxeAccess.GetTrimatBuffer(xrayView.ViewName, (int)e.RequestType); byte[] convertedData = new byte[data.Length * pixelBytes]; for (int i = 0; i < data.Length; i++) { byte redColor = Convert.ToByte((data[i] << 24) >> 24); byte greenColor = Convert.ToByte((data[i] << 16) >> 24); byte blueColor = Convert.ToByte((data[i] << 8) >> 24); convertedData[i * pixelBytes] = redColor; convertedData[i * pixelBytes + 1] = greenColor; convertedData[i * pixelBytes + 2] = blueColor; } xrayView.Image.Source = BitmapSource.Create((int)xrayView.Image.Source.Width, (int)xrayView.Image.Source.Height, 96, 96, pixelFormat, null, convertedData, stride); } }
private void CreateXRayDisplays() { List <ViewObject> views = GetImageData(); if (views.Count > 0) { L3.Cargo.Workstation.Plugins.EAFB.XRayImages xrayview = new L3.Cargo.Workstation.Plugins.EAFB.XRayImages(); m_XrayImage = xrayview.CreateImages(views, m_statusBarItems, m_CaseObj.CaseHistories, m_SysConfig); m_XrayImage[0].FragmentMark_MenuItem.Click += new RoutedEventHandler(FragmentMark_MenuItem_Click); m_XrayImage[1].FragmentMark_MenuItem.Click += new RoutedEventHandler(FragmentMark_MenuItem_Click); m_XrayImage[0].FragmentRegisterView_Ellipse.Click += new RoutedEventHandler(FragmentRegisterView_MenuItem_Click); m_XrayImage[1].FragmentRegisterView_Ellipse.Click += new RoutedEventHandler(FragmentRegisterView_MenuItem_Click); m_XrayImage[0].FragmentUniformity_MenuItem.Click += new RoutedEventHandler(FragmentUniformity_MenuItem_Click); m_XrayImage[1].FragmentUniformity_MenuItem.Click += new RoutedEventHandler(FragmentUniformity_MenuItem_Click); m_XrayImage[0].CreateFramgmentMark_Ellipse.Click += new RoutedEventHandler(CreateFramgmentMark_MenuItem_Click); m_XrayImage[1].CreateFramgmentMark_Ellipse.Click += new RoutedEventHandler(CreateFramgmentMark_MenuItem_Click); m_XrayImage[0].PanZoom_MenuItem.Click += new RoutedEventHandler(PanZoom_MenuItem_Click); m_XrayImage[1].PanZoom_MenuItem.Click += new RoutedEventHandler(PanZoom_MenuItem_Click); m_XrayImage[0].MainXRayView.adonerImageObject.fragmentAdorner.Loaded += new RoutedEventHandler(fragmentAdornerView0_Loaded); //Conversion.SamplingSpace = m_SamplingSpace; m_View0FragmentAdorner = m_XrayImage[0].MainXRayView.adonerImageObject.fragmentAdorner; m_View1FragmentAdorner = m_XrayImage[1].MainXRayView.adonerImageObject.fragmentAdorner; m_View0FragmentAdorner.XrayViewNum = 0; m_View0FragmentAdorner.DefaultMarkRadiusSizePixels = m_defaultMarkRadiusSizeMillimeters / Conversion.SamplingSpace; if (views.Count > 1) { m_View1FragmentAdorner.Loaded += new RoutedEventHandler(fragmentAdornerView1_Loaded); m_View1FragmentAdorner.XrayViewNum = 1; m_View1FragmentAdorner.DefaultMarkRadiusSizePixels = m_defaultMarkRadiusSizeMillimeters / Conversion.SamplingSpace; } foreach (XRayImage image in m_XrayImage) { image.SetCreateNewAnnotation(m_CaseObj.IsCaseEditable); XRayView xrayView = image.MainView; Histogram histogram = new Histogram(); histogram.Setup(xrayView.XrayImageEffect, xrayView.Image, xrayView.History, xrayView.CurrentSource.Data); m_HistogramDisplay.AddHistogram(histogram); } LayoutInfo layoutInfo = new LayoutInfo(); layoutInfo.Name = "Histogram"; layoutInfo.Panel = PanelAssignment.InfoPanel; layoutInfo.Display = m_HistogramDisplay; Displays.Add(layoutInfo); } if (m_XrayImage != null && m_XrayImage.Count > 0) { System.Windows.Forms.Screen[] screens = System.Windows.Forms.Screen.AllScreens; if (views[0].ImageIndex == 61 && views.Count > 1 && screens.Length > 1) { UserControl1 panel0 = new UserControl1(m_XrayImage[0]); LayoutInfo layoutInfo0 = new LayoutInfo(); layoutInfo0.Name = "XRayPlugin-View0"; layoutInfo0.Panel = PanelAssignment.MainPanel; layoutInfo0.BringToFront = true; layoutInfo0.Display = panel0; layoutInfo0.StatusItems = m_statusBarItems.StatusDisplay; Displays.Add(layoutInfo0); UserControl1 panel1 = new UserControl1(m_XrayImage[1]); panel1.Margin = new Thickness(20); LayoutInfo layoutInfo1 = new LayoutInfo(); layoutInfo1.Name = "XRayPlugin-View1"; layoutInfo1.Panel = PanelAssignment.SecondaryPanel; layoutInfo1.BringToFront = true; layoutInfo1.Display = panel1; Displays.Add(layoutInfo1); } else { UserControl1 panel = new UserControl1(m_XrayImage); LayoutInfo layoutInfo = new LayoutInfo(); layoutInfo.Name = "XRayPlugin"; layoutInfo.Panel = PanelAssignment.MainPanel; layoutInfo.BringToFront = true; layoutInfo.Display = panel; layoutInfo.StatusItems = m_statusBarItems.StatusDisplay; Displays.Add(layoutInfo); } } }
private void CreateXRayDisplays() { List <ViewObject> views = GetImageData(); if (views.Count > 0) { L3.Cargo.Workstation.Plugins.XRayImageBase.XRayImages xrayview = new L3.Cargo.Workstation.Plugins.XRayImageBase.XRayImages(); m_XrayImage = xrayview.CreateImages(views, m_statusBarItems, m_CaseObj.CaseHistories, m_SysConfig); xrayview.AlgServerRequestEvent += new AlgServerRequestEventHandler(xrayview_AlgServerRequestEvent); foreach (XRayImage image in m_XrayImage) { image.SetCreateNewAnnotation(m_CaseObj.IsCaseEditable); XRayView xrayView = image.MainView; Histogram histogram = new Histogram(); histogram.Setup(xrayView.XrayImageEffect, xrayView.Image, xrayView.History, xrayView.CurrentSource.Data); m_HistogramDisplay.AddHistogram(histogram); } LayoutInfo layoutInfo = new LayoutInfo(); layoutInfo.Name = "Histogram"; layoutInfo.Panel = PanelAssignment.InfoPanel; layoutInfo.Display = m_HistogramDisplay; Displays.Add(layoutInfo); } if (m_XrayImage != null && m_XrayImage.Count > 0) { System.Windows.Forms.Screen[] screens = System.Windows.Forms.Screen.AllScreens; if (views[0].ImageIndex == 61 && views.Count > 1 && screens.Length > 1) { UserControl1 panel0 = new UserControl1(m_XrayImage[0]); LayoutInfo layoutInfo0 = new LayoutInfo(); layoutInfo0.Name = "XRayPlugin-View0"; layoutInfo0.Panel = PanelAssignment.MainPanel; layoutInfo0.BringToFront = true; layoutInfo0.Display = panel0; layoutInfo0.StatusItems = m_statusBarItems.StatusDisplay; Displays.Add(layoutInfo0); UserControl1 panel1 = new UserControl1(m_XrayImage[1]); panel1.Margin = new Thickness(20); LayoutInfo layoutInfo1 = new LayoutInfo(); layoutInfo1.Name = "XRayPlugin-View1"; layoutInfo1.Panel = PanelAssignment.SecondaryPanel; layoutInfo1.BringToFront = true; layoutInfo1.Display = panel1; Displays.Add(layoutInfo1); } else { UserControl1 panel = new UserControl1(m_XrayImage); LayoutInfo layoutInfo = new LayoutInfo(); layoutInfo.Name = "XRayPlugin"; layoutInfo.Panel = PanelAssignment.MainPanel; layoutInfo.BringToFront = true; layoutInfo.Display = panel; layoutInfo.StatusItems = m_statusBarItems.StatusDisplay; Displays.Add(layoutInfo); } if (m_DisplayFTIError) { DisplayTIPError(); } } }