Ejemplo n.º 1
0
        private void LoadOverlays()
        {
            if (_DataSet.OverlayCount > 0)
            {
                for (int i = 0; i < _DataSet.OverlayCount; i++)
                {
                    ImageViewerItem item = new ImageViewerItem();
                    item.Size = new LeadSize(100, 100);
                    item.Zoom(ControlSizeMode.FitAlways, 1, _rasterImageList.DefaultZoomOrigin.ToLeadPointD());
                    RasterOverlayAttributes attribte = _DataSet.GetOverlayAttributes(0);
                    if (attribte.FramesInOverlay > 1)
                    {
                        item.Image = _DataSet.GetOverlayImages(0, 0, attribte.FramesInOverlay);
                    }
                    else
                    {
                        // Add to image list
                        item.Image = _rasterImageViewer.Image.GetOverlayImage(i, RasterGetSetOverlayImageMode.Copy);

                        _rasterImageList.Items.Add(item);
                        _rasterImageList.Items.Select(null);
                        _rasterImageList.Items[i].IsSelected = true;

                        // Add to Viewer
                        _rasterImageViewer.Image.SetOverlayImage(i, item.Image, RasterGetSetOverlayImageMode.Copy);

                        // Update Attributes
                        RasterOverlayAttributes attributes = _rasterImageViewer.Image.GetOverlayAttributes(i, RasterGetSetOverlayAttributesFlags.Flags);
                        attributes.AutoPaint        = _mnuOverlaysShowOverlay.Checked;
                        attributes.AutoProcess      = true;
                        attributes.Origin           = new LeadPoint(0, 0);
                        attributes.Color            = new RasterColor(_overlayColor.R, _overlayColor.G, _overlayColor.B);
                        attributes.Columns          = item.Image.ImageWidth;
                        attributes.Rows             = item.Image.ImageHeight;
                        attributes.BitsAllocated    = 1;
                        attributes.FramesInOverlay  = item.Image.PageCount;
                        attributes.ImageFrameOrigin = 1;
                        attributes.Type             = "G";
                        _rasterImageViewer.Image.UpdateOverlayAttributes(i, attributes, RasterGetSetOverlayAttributesFlags.Flags | RasterGetSetOverlayAttributesFlags.Origin | RasterGetSetOverlayAttributesFlags.Color | RasterGetSetOverlayAttributesFlags.Dicom);
                    }
                }
            }
            else
            {
                MessageBox.Show("This dataset has no overlays.\nTo insert a new overlay, please select \"Overlays\\ Insert Overlay\" from the menu.");
            }
        }