Ejemplo n.º 1
0
        private void Startup()
        {
            try
            {
                //Check if ocr engine was passed in. The recognition demos have the ability to launch this demo and it will pass
                //the ocr engine it is using. We will default to that engine
                string[] commandArgs = Environment.GetCommandLineArgs();
                if (commandArgs.Length == 2)
                {
                    Properties.Settings settings = new Properties.Settings();
                    settings.OcrEngineType = commandArgs[1];
                    settings.Save();
                }

                if (!StartUpEngines())
                {
                    Messager.ShowError(this, "One or more required engines did not start. The application will now close.");
                    this.Close();
                    return;
                }

                Messager.Caption = "LEADTOOLS Check Reader";

                checkReader           = new BankCheckReader();
                checkReader.OcrEngine = ocrEngine;
#if LEADTOOLS_V20_OR_LATER
                checkReader.MicrFontType = BankCheckMicrFontType.Unknown;
#endif // #if LEADTOOLS_V20_OR_LATER
                brush = new SolidBrush(Color.FromArgb(127, Color.Yellow));
                pen   = new Pen(brush);
            }
            catch (Exception exp)
            {
                Messager.ShowError(this, exp);
                return;
            }

            _noneInteractiveMode             = new ImageViewerNoneInteractiveMode();
            _panInteractiveMode              = new ImageViewerPanZoomInteractiveMode();
            _panInteractiveMode.MouseButtons = System.Windows.Forms.MouseButtons.Left;
            _zoomToInteractiveMode           = new ImageViewerZoomToInteractiveMode();


            rasterImageViewer1.InteractiveModes.BeginUpdate();
            rasterImageViewer1.InteractiveModes.Add(_noneInteractiveMode);
            rasterImageViewer1.InteractiveModes.Add(_panInteractiveMode);
            rasterImageViewer1.InteractiveModes.Add(_zoomToInteractiveMode);
            rasterImageViewer1.PostRender += new EventHandler <ImageViewerRenderEventArgs>(rasterImageViewer1_PostRender);
            rasterImageViewer1.InteractiveModes.EndUpdate();

            dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

            // Load the default document
            string defaultDocumentFile = Path.Combine(DemosGlobal.ImagesFolder, "BankCheck.jpg");

            if (File.Exists(defaultDocumentFile))
            {
                OpenImage(defaultDocumentFile);
            }
        }
Ejemplo n.º 2
0
        private void InitInteractiveModes()
        {
            _imageViewer.InteractiveModes.BeginUpdate();
            _imageViewer.InteractiveModes.Clear();

            noneMode               = new ImageViewerNoneInteractiveMode();
            noneMode.IdleCursor    = Cursors.Arrow;
            noneMode.WorkingCursor = Cursors.Arrow;
            noneMode.IsEnabled     = true;
            _imageViewer.InteractiveModes.Add(noneMode);

            panZoomMode               = new ImageViewerPanZoomInteractiveMode();
            panZoomMode.IdleCursor    = Cursors.Hand;
            panZoomMode.WorkingCursor = Cursors.Hand;
            panZoomMode.IsEnabled     = false;
            panZoomMode.WorkOnBounds  = true;
            _imageViewer.InteractiveModes.Add(panZoomMode);

            zoomToMode               = new ImageViewerZoomToInteractiveMode();
            zoomToMode.IdleCursor    = Cursors.Cross;
            zoomToMode.WorkingCursor = Cursors.Cross;
            zoomToMode.IsEnabled     = false;
            zoomToMode.WorkOnBounds  = true;
            _imageViewer.InteractiveModes.Add(zoomToMode);

            _imageViewer.InteractiveModes.EndUpdate();
        }
Ejemplo n.º 3
0
        private void InitInteractiveModes()
        {
            //None
            noneInteractiveMode = new ImageViewerNoneInteractiveMode();
            _rasterImageViewer.InteractiveModes.Add(noneInteractiveMode);

            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);

            PanInteractiveMode                 = new ImageViewerPanZoomInteractiveMode();
            PanInteractiveMode.IdleCursor      = Cursors.Hand;
            PanInteractiveMode.WorkingCursor   = Cursors.Hand;
            PanInteractiveMode.IsEnabled       = false;
            PanInteractiveMode.WorkOnBounds    = true;
            PanInteractiveMode.EnablePan       = true;
            PanInteractiveMode.EnableZoom      = false;
            PanInteractiveMode.EnablePinchZoom = false;
            _rasterImageViewer.InteractiveModes.Add(PanInteractiveMode);

            ZoomToInteractiveMode = new ImageViewerZoomToInteractiveMode();
            ZoomToInteractiveMode.WorkCompleted += new EventHandler(zoomToMode_WorkCompleted);
            ZoomToInteractiveMode.IdleCursor     = Cursors.Cross;
            ZoomToInteractiveMode.WorkingCursor  = Cursors.Cross;
            ZoomToInteractiveMode.IsEnabled      = false;
            ZoomToInteractiveMode.WorkOnBounds   = true;
            _rasterImageViewer.InteractiveModes.Add(ZoomToInteractiveMode);

            automationInteractiveMode.IsEnabled = true;
            _rasterImageViewer.InteractiveModes.EnableById(automationInteractiveMode.Id);
        }
Ejemplo n.º 4
0
        public RecognitionResult(List <FilledForm> filledForms)
        {
            InitializeComponent();
            _filledForms = filledForms;
            _cmbSelectedForm.Items.Clear();

            for (int i = 0; i < _filledForms.Count; i++)
            {
                _cmbSelectedForm.Items.Add(_filledForms[i].Name);
            }

            _panInteractiveMode    = new ImageViewerPanZoomInteractiveMode();
            _zoomToInteractiveMode = new ImageViewerZoomToInteractiveMode();

            _panInteractiveMode.MouseButtons = System.Windows.Forms.MouseButtons.Left;

            _panInteractiveMode.IdleCursor    = Cursors.Hand;
            _panInteractiveMode.IdleCursor    = Cursors.Hand;
            _zoomToInteractiveMode.IdleCursor = Cursors.Cross;
            _zoomToInteractiveMode.IdleCursor = Cursors.Cross;

            _filledFormViewer.InteractiveModes.BeginUpdate();
            _fieldViewer.InteractiveModes.BeginUpdate();
            _filledFormViewer.InteractiveModes.Add(_panInteractiveMode);
            _filledFormViewer.InteractiveModes.Add(_zoomToInteractiveMode);
            _fieldViewer.InteractiveModes.Add(_panInteractiveMode);
            _fieldViewer.InteractiveModes.Add(_zoomToInteractiveMode);
            _filledFormViewer.InteractiveModes.EndUpdate();
            _fieldViewer.InteractiveModes.EndUpdate();
            _fieldResults.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
        }
Ejemplo n.º 5
0
        private void WriteBarcodeForm_Load(object sender, System.EventArgs e)
        {
            // initialize the _viewer object
            _viewer           = new ImageViewer();
            _viewer.Dock      = DockStyle.Fill;
            _viewer.BackColor = Color.DarkGray;
            Controls.Add(_viewer);
            _viewer.BringToFront();

            // initialize the codecs object.
            _codecs = new RasterCodecs();

            try
            {
                string imagePath = Path.Combine(DemosGlobal.ImagesFolder, "license_sample_rear_blank.png");
                _viewer.Image = _codecs.Load(imagePath);
            }
            catch
            {
                _viewer.Image = RasterImage.Create(1100, 700, 24, 150, RasterColor.White);
            }

            _barcodeEngine = new BarcodeEngine();
            _writeOptions  = (PDF417BarcodeWriteOptions)_barcodeEngine.Writer.GetDefaultOptions(BarcodeSymbology.PDF417);

            //Refer to AAMVA CDS 2016 Section D.3 thru D.11.2

            //Must range from 0.0066 to 0.015 inches
            _writeOptions.XModule = 15; //0.015
            //Must >= 3
            _writeOptions.XModuleAspectRatio = 3;
            //Error level must be at least 3, 5 is recommended
            _writeOptions.ECCLevel = PDF417BarcodeECCLevel.Level5;
            //Default WidthAspectRatio is 2:1. 4:1 looks similar to ID barcodes in the wild
            _writeOptions.SymbolWidthAspectRatio = 4;
            //Default quiet zone for PDF417 is 2 * XModule


            _viewer.BeginUpdate();
            WriteBarcodeInteractiveMode writeBarcodeInteractiveMode = new WriteBarcodeInteractiveMode(_barcodeEngine, _aamvaData, _writeOptions);

            writeBarcodeInteractiveMode.IsEnabled = true;
            ImageViewerPanZoomInteractiveMode panZoomInteractiveMode = new ImageViewerPanZoomInteractiveMode();

            _viewer.InteractiveModes.Add(writeBarcodeInteractiveMode);
            _viewer.InteractiveModes.Add(panZoomInteractiveMode);
            _viewer.EndUpdate();


            UpdateMyControls();
        }
Ejemplo n.º 6
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();
        }
Ejemplo n.º 7
0
        protected override void OnLoad(EventArgs e)
        {
            if (!DesignMode)
            {
                // Use ScaleToGray and Bicubic for optimum viewing of black/white and color images
                RasterPaintProperties props = _rasterImageViewer.PaintProperties;
                props.PaintDisplayMode            |= RasterPaintDisplayModeFlags.ScaleToGray | RasterPaintDisplayModeFlags.Bicubic;
                _rasterImageViewer.PaintProperties = props;

                // Pad the viewer
                _rasterImageViewer.ViewMargin          = new Padding(10);
                _rasterImageViewer.ViewBorderThickness = 1;
                _automationInteractiveMode             = new AutomationInteractiveMode();
                _noneInteractiveMode                        = new ImageViewerNoneInteractiveMode();
                _panInteractiveMode                         = new ImageViewerPanZoomInteractiveMode();
                _panInteractiveMode.MouseButtons            = System.Windows.Forms.MouseButtons.Left;
                _panInteractiveMode.IdleCursor              = Cursors.Hand;
                _panInteractiveMode.WorkingCursor           = Cursors.Hand;
                _zoomToInteractiveMode                      = new ImageViewerZoomToInteractiveMode();
                _zoomToInteractiveMode.RubberBandCompleted += new EventHandler <ImageViewerRubberBandEventArgs>(_rasterImageViewer_InteractiveZoomTo);

                _rasterImageViewer.InteractiveModes.BeginUpdate();
                _rasterImageViewer.InteractiveModes.Add(_noneInteractiveMode);
                _rasterImageViewer.InteractiveModes.Add(_automationInteractiveMode);
                _rasterImageViewer.InteractiveModes.Add(_panInteractiveMode);
                _rasterImageViewer.InteractiveModes.Add(_zoomToInteractiveMode);
                _rasterImageViewer.InteractiveModes.EndUpdate();

                DisableInteractiveModes();

                _rasterImageViewer.InteractiveModes.EnableById(_automationInteractiveMode.Id);

                // These events are needed and not visible from the designer, so
                // hook into them here
                _zoomToolStripComboBox.LostFocus += new EventHandler(_zoomToolStripComboBox_LostFocus);
                _pageToolStripTextBox.LostFocus  += new EventHandler(_pageToolStripTextBox_LostFocus);

                // Call the transform changed event
                _rasterImageViewer_TransformChanged(_rasterImageViewer, EventArgs.Empty);

                FitPage(false);

                _mousePositionLabel.Text = string.Empty;

                // Initialize the annotation objects
                InitAnnotations();
            }

            base.OnLoad(e);
        }
        private void CreateAttachmentImageViewer()
        {
            // Create an image viewer to be used to show the attachments of a LEADDocument
            ImageViewerVerticalViewLayout layout = new ImageViewerVerticalViewLayout();

            layout.Columns = 0;
            var imageViewer = new ImageViewer(layout);

            imageViewer.Dock = DockStyle.Fill;

            imageViewer.ItemHorizontalAlignment = ControlAlignment.Center;
            imageViewer.ItemVerticalAlignment   = ControlAlignment.Center;

            imageViewer.ViewPadding                 = new Padding(8, 8, 8, 8);
            imageViewer.ItemPadding                 = new Padding(10, 10, 10, 50);
            imageViewer.ImageBorderThickness        = 1;
            imageViewer.SelectedItemBackgroundColor = Color.LightBlue;

            imageViewer.AutoDisposeImages = false;

            _attachmentsTabPage.Controls.Add(imageViewer);
            imageViewer.BringToFront();

            // Create a select interactive mode
            ImageViewerSelectItemsInteractiveMode selectItemsMode = new ImageViewerSelectItemsInteractiveMode();

            selectItemsMode.SelectionMode = ImageViewerSelectionMode.Single;
            selectItemsMode.MouseButtons  = MouseButtons.Left | MouseButtons.Right;
            selectItemsMode.ItemActivate += AttachmentImageViewerItemActivate;

            // Create a pan interactive mode for the area outside the selection
            ImageViewerPanZoomInteractiveMode panMode = new ImageViewerPanZoomInteractiveMode();

            panMode.EnableZoom        = false;
            panMode.DoubleTapSizeMode = ControlSizeMode.None;

            imageViewer.BeginUpdate();
            imageViewer.InteractiveModes.Add(selectItemsMode);
            imageViewer.InteractiveModes.Add(panMode);
            imageViewer.EndUpdate();

            _attachmentImage = CreateAttachmentImage(imageViewer);

            imageViewer.SelectedItemsChanged += AttachmentImageViewerSelectedItemChanged;
            imageViewer.ContextMenuStrip      = _attachmentsContextMenu;
            _attachmentsImageViewer           = imageViewer;
        }
Ejemplo n.º 9
0
        private void Startup()
        {
            try
            {
                //Check if ocr engine was passed in. The recognition demos have the ability to launch this demo and it will pass
                //the ocr engine it is using. We will default to that engine
                if (!StartUpEngines())
                {
                    Messager.ShowError(this, "One or more required engines did not start. The application will now close.");
                    this.Close();
                    return;
                }

                Messager.Caption = "LEADTOOLS Business Card Reader";
                _bcrReader       = new BusinessCardReader(_ocrEngine, _barcodeEngine);
            }
            catch (Exception exp)
            {
                Messager.ShowError(this, exp);
            }

            closeToolStripMenuItem.Enabled   = false;
            _noneInteractiveMode             = new ImageViewerNoneInteractiveMode();
            _panInteractiveMode              = new ImageViewerPanZoomInteractiveMode();
            _panInteractiveMode.MouseButtons = System.Windows.Forms.MouseButtons.Left;
            _zoomToInteractiveMode           = new ImageViewerZoomToInteractiveMode();

            rasterImageViewer1.InteractiveModes.BeginUpdate();
            rasterImageViewer1.InteractiveModes.Add(_noneInteractiveMode);
            rasterImageViewer1.InteractiveModes.Add(_panInteractiveMode);
            rasterImageViewer1.InteractiveModes.Add(_zoomToInteractiveMode);
            rasterImageViewer1.InteractiveModes.EndUpdate();

            this.rasterImageViewer1.PostRender += RasterImageViewer1_PostRender;

            // Load the default document
            string defaultDocumentFile = Path.Combine(DemosGlobal.ImagesFolder, "business_card_sample.jpg");

            if (File.Exists(defaultDocumentFile))
            {
                OpenImage(defaultDocumentFile);
            }
        }
Ejemplo n.º 10
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);
        }
Ejemplo n.º 11
0
        private void InitInteractiveModes()
        {
            _imageViewer.InteractiveModes.BeginUpdate();
            _imageViewer.InteractiveModes.Clear();

            panZoomMode               = new ImageViewerPanZoomInteractiveMode();
            panZoomMode.IdleCursor    = Cursors.Hand;
            panZoomMode.WorkingCursor = Cursors.Hand;
            panZoomMode.IsEnabled     = true;
            panZoomMode.WorkOnBounds  = true;
            _imageViewer.InteractiveModes.Add(panZoomMode);

            zoomToMode = new ImageViewerZoomToInteractiveMode();
            zoomToMode.WorkCompleted += new EventHandler(zoomToMode_WorkCompleted);
            zoomToMode.IdleCursor     = Cursors.Cross;
            zoomToMode.WorkingCursor  = Cursors.Cross;
            zoomToMode.IsEnabled      = true;
            zoomToMode.WorkOnBounds   = true;
            _imageViewer.InteractiveModes.Add(zoomToMode);

            _imageViewer.InteractiveModes.EndUpdate();
        }
Ejemplo n.º 12
0
        private void InitImageViewer()
        {
            // Create the control
            _imageViewer           = new ImageViewer(_viewLayouts[1]);
            _imageViewer.BackColor = SystemColors.AppWorkspace;
            _imageViewer.Dock      = DockStyle.Fill;

            // Use the image true resolution
            _imageViewer.UseDpi = true;

            // We want some padding between the overall viewer and the pages, so
            _imageViewer.ViewPadding = new Padding(10);

            // Center the pages horizontally and vertically in the viewer
            _imageViewer.ViewHorizontalAlignment = ControlAlignment.Center;
            _imageViewer.ViewVerticalAlignment   = ControlAlignment.Center;

            // Add some spacing between the pages
            _imageViewer.ItemSpacing = new LeadSize(8, 8);

            // Add a border to each page
            _imageViewer.ItemBorderThickness = 2;
            _imageViewer.ItemBorderColor     = Color.Black;

            // Since we can load SVG documents that has no background color, set one
            _imageViewer.ImageBackgroundColor = Color.White;

            this.Controls.Add(_imageViewer);
            _imageViewer.BringToFront();

            // Add the pan/zoom interactive mode
            var panZoomMode = new ImageViewerPanZoomInteractiveMode
            {
                DoubleTapSizeMode = ControlSizeMode.ActualSize
            };

            _imageViewer.InteractiveModes.Add(panZoomMode);
        }
Ejemplo n.º 13
0
        private void InitInteractiveModes()
        {
            _automationInteractiveMode = new AutomationInteractiveMode();
            // Don't set the cursors, AnnAutomation will take care of it
            _automationInteractiveMode.AutomationControl = _automationControl;

            _magnifyGlassInteractiveMode               = new ImageViewerMagnifyGlassInteractiveMode();
            _magnifyGlassInteractiveMode.IdleCursor    = Cursors.Cross;
            _magnifyGlassInteractiveMode.WorkingCursor = Cursors.Cross;

            _panZoomInteractiveMode               = new ImageViewerPanZoomInteractiveMode();
            _panZoomInteractiveMode.IdleCursor    = Cursors.SizeAll;
            _panZoomInteractiveMode.WorkingCursor = Cursors.SizeAll;

            ImageViewerInteractiveMode[] modes =
            {
                _automationInteractiveMode,
                _panZoomInteractiveMode,
                _magnifyGlassInteractiveMode
            };
            _viewer.InteractiveModes.BeginUpdate();
            foreach (var mode in modes)
            {
                mode.IsEnabled = false;

                var spyglass = mode as ImageViewerSpyGlassInteractiveMode;
                if (spyglass != null)
                {
                    mode.IdleCursor = Cursors.Cross;
                    spyglass.Shape  = ImageViewerSpyGlassShape.Rectangle;
                }

                _viewer.InteractiveModes.Add(mode);
            }
            _automationInteractiveMode.IsEnabled = true;
            _viewer.InteractiveModes.EndUpdate();
        }
Ejemplo n.º 14
0
        private DocumentViewer _svgViewer = null; //The LEADTOOLS ImageViewer Control to view as SVG
        public MainForm()
        {
            InitializeComponent();

            // Setup the caption for this demo
            Messager.Caption = "C# OCR Screen Capture Demo";
            this.Text        = Messager.Caption;

            #region LEADTOOLS ImageViewer
            // Create the LEADTOOLS ImageViewer
            _imageViewer = new ImageViewer();

            // Add it to the Form
            _splitContainer.Panel1.Controls.Add(_imageViewer);
            // Set the display properties
            _imageViewer.BeginUpdate();
            _imageViewer.Dock                    = DockStyle.Fill;
            _imageViewer.BorderStyle             = System.Windows.Forms.BorderStyle.FixedSingle;
            _imageViewer.Cursor                  = System.Windows.Forms.Cursors.Default;
            _imageViewer.ViewHorizontalAlignment = ControlAlignment.Center;
            _imageViewer.ViewVerticalAlignment   = ControlAlignment.Center;
            _imageViewer.ItemHorizontalAlignment = ControlAlignment.Center;
            _imageViewer.ItemVerticalAlignment   = ControlAlignment.Center;
            // Set the layout
            _imageViewer.ViewLayout = new ImageViewerSingleViewLayout();
            _imageViewer.EndUpdate();
            // Hook up the Mouse Events
            _imageViewer.MouseDown  += new MouseEventHandler(imageViewer_MouseDown);
            _imageViewer.MouseMove  += new MouseEventHandler(imageViewer_MouseMove);
            _imageViewer.MouseUp    += new MouseEventHandler(imageViewer_MouseUp);
            _imageViewer.MouseLeave += new EventHandler(imageViewer_MouseLeave);
            _imageViewer.KeyDown    += new KeyEventHandler(imageViewer_KeyDown);
            _imageViewer.LostFocus  += new EventHandler(imageViewer_LostFocus);
            #endregion LEADTOOLS ImageViewer

            #region LEADTOOLS DocumentViewer
            var createOptions = new DocumentViewerCreateOptions()
            {
                ViewContainer       = _splitContainer.Panel2,
                ThumbnailsContainer = null,
                BookmarksContainer  = null,
                UseAnnotations      = false
            };

            _svgViewer = DocumentViewerFactory.CreateDocumentViewer(createOptions);
            _svgViewer.View.PreferredItemType    = DocumentViewerItemType.Svg;
            _svgViewer.Text.AutoGetText          = true;
            _svgViewer.View.ImageViewer.KeyDown += ImageViewer_KeyDown;
            _svgViewer.Commands.Run(DocumentViewerCommands.InteractiveSelectText);

            _svgViewer.View.ImageViewer.InteractiveModes.BeginUpdate();
            ImageViewerPanZoomInteractiveMode panZoom = new ImageViewerPanZoomInteractiveMode()
            {
                MouseButtons = MouseButtons.Middle
            };
            _svgViewer.View.ImageViewer.InteractiveModes.Add(panZoom);
            _svgViewer.View.ImageViewer.InteractiveModes.EndUpdate();


            ContextMenu viewerContextMenu = new ContextMenu();
            MenuItem    selectAllMenuItem = new MenuItem("Select All");
            selectAllMenuItem.Click += (s, e) => { _svgViewer.Commands.Run(DocumentViewerCommands.TextSelectAll); };
            viewerContextMenu.MenuItems.Add(selectAllMenuItem);

            MenuItem copyText = new MenuItem("Copy");
            copyText.Click += (s, e) => { _svgViewer.Commands.Run(DocumentViewerCommands.TextCopy); };
            viewerContextMenu.MenuItems.Add(copyText);
            _svgViewer.View.ImageViewer.ContextMenu       = viewerContextMenu;
            _svgViewer.View.ImageViewer.MouseDoubleClick += ImageViewer_MouseDoubleClick;
            #endregion LEADTOOLS DocumentViewer
        }
Ejemplo n.º 15
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();
        }
Ejemplo n.º 16
0
 private void InitInteractiveModes()
 {
     noneMode   = _viewerControl.NoneInteractiveMode;
     panMode    = _viewerControl.PanZoomInteractiveMode;
     zoomToMode = _viewerControl.ZoomToInteractiveMode;
 }
        // Create the document viewer
        private void InitDocumentViewer(DocumentScanType scanType)
        {
            var createOptions = new DocumentViewerCreateOptions();

            // Set the UI part where the main view is displayed
            createOptions.ViewContainer       = DocumentViewerContainer;
            createOptions.ThumbnailsContainer = ThumbnailsLayout;
            createOptions.UseAnnotations      = true;

            // Now create the viewer
            _documentViewer = DocumentViewerFactory.CreateDocumentViewer(createOptions);
            // Set the user name
            _documentViewer.UserName = Environment.UserName;
            // We prefer SVG viewing (if supported)
            _documentViewer.View.PreferredItemType = DocumentViewerItemType.Svg;
            // Set thumbnail viewer options
            ImageViewer thumbnailsImageViewer = _documentViewer.Thumbnails.ImageViewer;

            thumbnailsImageViewer.BackgroundColor             = Color.Transparent;
            thumbnailsImageViewer.ItemHorizontalAlignment     = ControlAlignment.Near;
            thumbnailsImageViewer.ItemVerticalAlignment       = ControlAlignment.Near;
            thumbnailsImageViewer.SelectedItemBackgroundColor = Color.FromRgb(80, 131, 242);

            _documentViewer.Operation += _documentViewer_Operation;

            var imageViewer = _documentViewer.View.ImageViewer;

            imageViewer.BackgroundColor = Color.FromHex("#F5F7FA");
#if LEADTOOLS_V21_OR_LATER
            imageViewer.IsFastScrollGadgetEnabled = true;
#endif // #if LEADTOOLS_V21_OR_LATER
            imageViewer.ViewVerticalAlignment = ControlAlignment.Near;
            imageViewer.ViewBorderThickness   = 0;
            imageViewer.ItemBorderThickness   = 0;
            imageViewer.ImageBorderThickness  = 0;
            imageViewer.Zoom(ControlSizeMode.FitWidth, 1, imageViewer.DefaultZoomOrigin);
            imageViewer.InteractiveService.KeyDown += InteractiveService_KeyDown;

            // By default, document viewer has 11 interactive modes added and we don't need them all in our document viewer page.
            // So remove them all exception PanZoom, SelectText and Annotations interactive modes.
            ImageViewerPanZoomInteractiveMode panZoomMode = null;
            var panZoomModes = imageViewer.InteractiveModes.Where(mode => mode.GetType() == typeof(ImageViewerPanZoomInteractiveMode) && (mode as ImageViewerPanZoomInteractiveMode).EnablePan && (mode as ImageViewerPanZoomInteractiveMode).EnablePinchZoom);
            if (panZoomModes != null && panZoomModes.Count() > 0)
            {
                panZoomMode = panZoomModes.ElementAt(0) as ImageViewerPanZoomInteractiveMode;
            }

            DocumentViewerSelectTextInteractiveMode selectTextMode = null;
            var selectTextModes = imageViewer.InteractiveModes.Where(mode => mode.GetType() == typeof(DocumentViewerSelectTextInteractiveMode));
            if (selectTextModes != null && selectTextModes.Count() > 0)
            {
                selectTextMode = selectTextModes.ElementAt(0) as DocumentViewerSelectTextInteractiveMode;
            }

            AnnotationsInteractiveMode annotationsMode = null;
            var annotationsModes = imageViewer.InteractiveModes.Where(mode => mode.GetType() == typeof(AnnotationsInteractiveMode));
            if (annotationsModes != null && annotationsModes.Count() > 0)
            {
                annotationsMode = annotationsModes.ElementAt(0) as AnnotationsInteractiveMode;
            }

            imageViewer.BeginUpdate();
            imageViewer.InteractiveModes.Clear();
            imageViewer.InteractiveModes.Add(annotationsMode);
            imageViewer.InteractiveModes.Add(panZoomMode);
            imageViewer.InteractiveModes.Add(selectTextMode);
            imageViewer.EndUpdate();

            // Helps with debugging of there was a rendering error
            imageViewer.RenderError += (sender, e) =>
            {
                var message = string.Format("Error while rendering item {0} part {1}: {2}",
                                            e.Item != null ? imageViewer.Items.IndexOf(e.Item) : -1,
                                            e.Part,
                                            e.Error.Message);
                System.Diagnostics.Debug.WriteLine(message);
            };

            InitAutomation();

            _documentViewer.Text.AutoGetText = true;
            //_documentViewer.Commands.Run(DocumentViewerCommands.InteractiveAutoPan);

            _documentViewer.View.ImageViewer.ScrollOffsetChanged -= ImageViewer_ScrollOffsetChanged;
            if (scanType == DocumentScanType.Document)
            {
                _documentViewer.View.ImageViewer.ScrollOffsetChanged += ImageViewer_ScrollOffsetChanged;
            }

            // If the scan type is Document enable the pan/zoom interactive mode by default otherwise (Text scan type) enable select text interactive mode by default.
            if (scanType == DocumentScanType.Document)
            {
                _documentViewer.Commands.Run(DocumentViewerCommands.InteractivePanZoom);
                _activeInteractiveMode = DocumentViewerCommands.InteractivePanZoom;
            }
            else
            {
                _activeInteractiveMode = DocumentViewerCommands.InteractiveSelectText;
            }

            UpdateUIState();

            // Enable inertia scroll
            ToggleInertiaScroll(false);
        }