Exemplo n.º 1
0
        private void InitViewer()
        {
            // Use ScaleToGray and Bicubic for optimum viewing of black/white and color images
            RasterPaintProperties props = _rasterImageViewer.PaintProperties;

            props.PaintDisplayMode |= RasterPaintDisplayModeFlags.Bicubic;

            if (!RasterSupport.IsLocked(RasterSupportType.Document))
            {
                props.PaintDisplayMode |= RasterPaintDisplayModeFlags.ScaleToGray;
            }

            _rasterImageViewer.PaintProperties = props;

            // Pad the viewer
            _rasterImageViewer.Padding = new Padding(10);

            // Set the cursors
            _noneInteractiveMode                        = new ImageViewerNoneInteractiveMode();
            _panInteractiveMode                         = new ImageViewerPanZoomInteractiveMode();
            _panInteractiveMode.MouseButtons            = System.Windows.Forms.MouseButtons.Left;
            _zoomToInteractiveMode                      = new ImageViewerZoomToInteractiveMode();
            _zoomToInteractiveMode.RubberBandCompleted += new EventHandler <ImageViewerRubberBandEventArgs>(_rasterImageViewer_InteractiveZoomTo);
            _rectInteractiveMode                        = new ImageViewerRubberBandInteractiveMode();
            _regionInteractiveMode                      = new ImageViewerAddRegionInteractiveMode();
            _regionInteractiveMode.RubberBandCompleted += new EventHandler <ImageViewerRubberBandEventArgs>(_rasterImageViewer_InteractiveRegionRectangle);
            _regionInteractiveMode.RubberBandStarted   += new EventHandler <ImageViewerRubberBandEventArgs>(RegionInteractiveMode_RubberBandStarted);
            _rectInteractiveMode.RubberBandCompleted   += new EventHandler <ImageViewerRubberBandEventArgs>(RectInteractiveMode_RubberBandCompleted);
            _noneInteractiveMode.IdleCursor             = Cursors.Arrow;
            _noneInteractiveMode.WorkingCursor          = Cursors.Arrow;

            _panInteractiveMode.IdleCursor    = Cursors.Hand;
            _panInteractiveMode.WorkingCursor = Cursors.Hand;

            _zoomToInteractiveMode.IdleCursor    = Cursors.Cross;
            _zoomToInteractiveMode.WorkingCursor = Cursors.Cross;

            _rectInteractiveMode.IdleCursor    = Cursors.Cross;
            _rectInteractiveMode.WorkingCursor = Cursors.Cross;

            _regionInteractiveMode.IdleCursor    = Cursors.Cross;
            _regionInteractiveMode.WorkingCursor = Cursors.Cross;

            _rasterImageViewer.InteractiveModes.BeginUpdate();
            _rasterImageViewer.InteractiveModes.Add(_noneInteractiveMode);
            _rasterImageViewer.InteractiveModes.Add(_panInteractiveMode);
            _rasterImageViewer.InteractiveModes.Add(_zoomToInteractiveMode);
            _rasterImageViewer.InteractiveModes.Add(_rectInteractiveMode);
            _rasterImageViewer.InteractiveModes.Add(_regionInteractiveMode);
            _rasterImageViewer.InteractiveModes.EndUpdate();
        }
Exemplo n.º 2
0
        private void InitializeInteractivemodes()
        {
            //None
            NoneInteractiveMode = new ImageViewerNoneInteractiveMode();
            _rasterImageViewer.InteractiveModes.Add(NoneInteractiveMode);
            //Annotations
            automationInteractiveMode = new AutomationInteractiveMode();
            automationInteractiveMode.MouseButtons  = System.Windows.Forms.MouseButtons.Left | System.Windows.Forms.MouseButtons.Right;
            automationInteractiveMode.IdleCursor    = Cursors.Default;
            automationInteractiveMode.WorkingCursor = Cursors.Default;
            _rasterImageViewer.InteractiveModes.Add(automationInteractiveMode);
            //Pan
            PanInteractiveMode                 = new ImageViewerPanZoomInteractiveMode();
            PanInteractiveMode.EnablePan       = true;
            PanInteractiveMode.EnableZoom      = false;
            PanInteractiveMode.EnablePinchZoom = false;
            PanInteractiveMode.WorkOnBounds    = true;
            _rasterImageViewer.InteractiveModes.Add(PanInteractiveMode);
            //ZoomTo
            ZoomToInteractiveMode = new ImageViewerZoomToInteractiveMode();
            ZoomToInteractiveMode.WorkOnBounds   = true;
            ZoomToInteractiveMode.Shape          = ImageViewerRubberBandShape.Rectangle;
            ZoomToInteractiveMode.WorkCompleted += new EventHandler(ZoomToInteractiveMode_WorkCompleted);
            _rasterImageViewer.InteractiveModes.Add(ZoomToInteractiveMode);
            //Region
            RegionInteractiveMode       = new ImageViewerAddRegionInteractiveMode();
            RegionInteractiveMode.Shape = ImageViewerRubberBandShape.Rectangle;
            RegionInteractiveMode.AutoRegionToFloater = true;
            RegionInteractiveMode.WorkOnBounds        = true;
            _rasterImageViewer.InteractiveModes.Add(RegionInteractiveMode);
            //Rectangle
            RectangleInteractiveMode                      = new ImageViewerRubberBandInteractiveMode();
            RectangleInteractiveMode.Shape                = ImageViewerRubberBandShape.Rectangle;
            RectangleInteractiveMode.WorkOnBounds         = true;
            RectangleInteractiveMode.RubberBandCompleted += new EventHandler <ImageViewerRubberBandEventArgs>(RectangleInteractiveMode_RubberBandCompleted);
            _rasterImageViewer.InteractiveModes.Add(RectangleInteractiveMode);

            automationInteractiveMode.IsEnabled = true;
            _rasterImageViewer.InteractiveModes.EnableById(automationInteractiveMode.Id);
        }
Exemplo n.º 3
0
        private void InitializeInteractivemodes()
        {
            _viewer.InteractiveModes.BeginUpdate();
            //None
            NoneInteractiveMode           = new ImageViewerNoneInteractiveMode();
            NoneInteractiveMode.IsEnabled = true;
            _viewer.InteractiveModes.Add(NoneInteractiveMode);
            //Floater
            FloaterInteractiveMode                         = new ImageViewerFloaterInteractiveMode();
            FloaterInteractiveMode.EnablePan               = true;
            FloaterInteractiveMode.EnableZoom              = false;
            FloaterInteractiveMode.EnablePinchZoom         = false;
            FloaterInteractiveMode.WorkOnBounds            = true;
            FloaterInteractiveMode.FloaterRegionRenderMode = ControlRegionRenderMode.Animated;
            _viewer.InteractiveModes.Add(FloaterInteractiveMode);
            //Pan
            PanInteractiveMode                 = new ImageViewerPanZoomInteractiveMode();
            PanInteractiveMode.EnablePan       = true;
            PanInteractiveMode.EnableZoom      = false;
            PanInteractiveMode.EnablePinchZoom = false;
            PanInteractiveMode.WorkOnBounds    = true;
            _viewer.InteractiveModes.Add(PanInteractiveMode);
            //CenterAt
            CenterAtInteractiveMode = new ImageViewerCenterAtInteractiveMode();
            CenterAtInteractiveMode.WorkOnBounds = true;
            _viewer.InteractiveModes.Add(CenterAtInteractiveMode);
            //Add Magic Wand
            AddMagicWandInteractivMode                = new ImageViewerAddMagicWandInteractivMode();
            AddMagicWandInteractivMode.Threshold      = 100;
            AddMagicWandInteractivMode.IsEnabled      = false;
            AddMagicWandInteractivMode.WorkOnBounds   = true;
            AddMagicWandInteractivMode.WorkCompleted += new EventHandler(AddMagicWandInteractivMode_WorkCompleted);
            _viewer.InteractiveModes.Add(AddMagicWandInteractivMode);
            //ZoomTo
            ZoomToInteractiveMode = new ImageViewerZoomToInteractiveMode();
            ZoomToInteractiveMode.WorkOnBounds = true;
            ZoomToInteractiveMode.Shape        = ImageViewerRubberBandShape.Rectangle;
            _viewer.InteractiveModes.Add(ZoomToInteractiveMode);
            //Scale
            ScaleInteractiveMode = new ImageViewerPanZoomInteractiveMode();
            ScaleInteractiveMode.ZoomKeyModifier = Keys.None;
            ScaleInteractiveMode.EnablePan       = false;
            ScaleInteractiveMode.EnableZoom      = true;
            ScaleInteractiveMode.EnablePinchZoom = false;
            ScaleInteractiveMode.WorkOnBounds    = true;
            _viewer.InteractiveModes.Add(ScaleInteractiveMode);
            //Pager
            PagerInteractiveMode = new ImageViewerPagerInteractiveMode();
            PagerInteractiveMode.WorkOnBounds = true;
            _viewer.InteractiveModes.Add(PagerInteractiveMode);
            //MagnifyGlass
            MagnifyGlassInteractiveMode              = new ImageViewerMagnifyGlassInteractiveMode();
            MagnifyGlassInteractiveMode.BorderPen    = new Pen(Brushes.Red);
            MagnifyGlassInteractiveMode.Crosshair    = ImageViewerSpyGlassCrosshair.Fine;
            MagnifyGlassInteractiveMode.CrosshairPen = new Pen(Brushes.Red);
            MagnifyGlassInteractiveMode.WorkOnBounds = true;
            _viewer.InteractiveModes.Add(MagnifyGlassInteractiveMode);
            //Region
            RegionInteractiveMode       = new ImageViewerAddRegionInteractiveMode();
            RegionInteractiveMode.Shape = ImageViewerRubberBandShape.Rectangle;
            RegionInteractiveMode.AutoRegionToFloater = true;
            RegionInteractiveMode.WorkOnBounds        = true;
            RegionInteractiveMode.WorkCompleted      += new EventHandler(RegionInteractiveMode_WorkCompleted);
            RegionInteractiveMode.IsEnabled           = false;
            _viewer.InteractiveModes.Add(RegionInteractiveMode);
            //Rectangle
            RectangleInteractiveMode              = new ImageViewerRubberBandInteractiveMode();
            RectangleInteractiveMode.Shape        = ImageViewerRubberBandShape.Rectangle;
            RectangleInteractiveMode.WorkOnBounds = true;
            _viewer.InteractiveModes.Add(RectangleInteractiveMode);

            _viewer.InteractiveModes.EndUpdate();
        }
Exemplo n.º 4
0
        void GetCursorData(int x, int y, int CurX, int CurY)
        {
            try
            {
                string paletteValue, RGB;
                if (x < _viewer.Image.Width && y < _viewer.Image.Height && x >= 0 && y >= 0 && _isWLImage && _viewer.Image.BitsPerPixel != 12)
                {
                    byte[] Data;
                    int    originalValue = 0, originalValueT = 0;
                    Data = _viewer.Image.GetPixelData(y, x);
                    switch (_viewer.Image.BitsPerPixel)
                    {
                    case 16:
                    case 12:
                        int high       = (_viewer.Image.HighBit != -1) ? _viewer.Image.HighBit : _viewer.Image.BitsPerPixel;
                        int signedBit  = _viewer.Image.HighBit;
                        int checkValue = (int)Math.Pow(2, signedBit);
                        originalValue = Data[1] * 256 + Data[0];
                        if (originalValue >= checkValue && _viewer.Image.Signed)
                        {
                            originalValue  = Data[1] * 256 + Data[0];
                            originalValueT = -1 * (((Convert.ToInt32(Math.Pow(2, signedBit - 7) - 1) - Data[1]) * 256 + 255 - Data[0]) + 1);
                        }
                        else
                        {
                            originalValueT = originalValue = Data[1] * 256 + Data[0];
                        }
                        break;

                    case 8:
                        originalValueT = originalValue = Data[0];
                        break;
                    }

                    paletteValue = "Palette map value = " + _currentPalette[originalValue].B;
                    RGB          = "RGB in the original image = " + originalValueT;
                }
                else
                {
                    RasterColor tmpColor = _viewer.Image.GetPixelColor(y, x);
                    RGB          = string.Format("RGB = ({0},{1},{2})", tmpColor.R, tmpColor.G, tmpColor.B);
                    paletteValue = "Palette map value =" + " 0 ";
                }

                if (_buttonPressed == MouseButton.Left)
                {
                    string tipMessage = string.Format("X = {1} , Y = {2} {0}{3} {0}{4}",
                                                      Environment.NewLine, x, y, paletteValue, RGB);

                    _toolTip.RemoveAll();
                    ImageViewerAddRegionInteractiveMode regionInteractiveMode = new ImageViewerAddRegionInteractiveMode();
                    if (!_isMagGlass && !_viewer.InteractiveModes.Contains(regionInteractiveMode))
                    {
                        _toolTip.Show(tipMessage, _viewer, CurX + 25, CurY + 25);
                    }
                }
            }
            catch (Exception /*ex*/)
            {
            }
        }