←Select platform

DrawImage Event

Summary

Occurs when the spy glass is working.

Syntax
C#
C++/CLI
public event EventHandler<ImageViewerSpyGlassDrawImageEventArgs> DrawImage 
public:  
   event EventHandler<Leadtools::Controls::ImageViewerSpyGlassDrawImageEventArgs^>^ DrawImage 
Remarks

ImageViewerSpyGlassInteractiveMode will fire this event while working. It is up to the implementers and listeners to draw the effect on the context.

Example
C#
using Leadtools; 
using Leadtools.Controls; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
 
public ImageViewerForm _form = new ImageViewerForm(); 
public ImageViewer _imageViewer; 
 
public void ImageViewerSpyGlassInteractiveModeExample() 
{ 
   // Get the ImageViewer control from the form 
   _imageViewer = _form.ImageViewer; 
 
   // Load an image 
   using (var codecs = new RasterCodecs()) 
      _imageViewer.Image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp")); 
 
   // Create the spyglass interactive mode 
   ImageViewerSpyGlassInteractiveMode spyGlass = new ImageViewerSpyGlassInteractiveMode(); 
   spyGlass.AutoItemMode = ImageViewerAutoItemMode.AutoSet; 
   spyGlass.BackgroundBrush = new SolidBrush(Color.FromArgb(128, Color.Yellow)); 
   spyGlass.BorderBackPen = new Pen(Color.Red); 
   spyGlass.BorderPen = new Pen(Color.Blue) { DashPattern = new float[] { 4.0F, 2.0F, 1.0F, 3.0F }}; 
   spyGlass.Crosshair = ImageViewerSpyGlassCrosshair.Fine; 
   spyGlass.CrosshairPen = new Pen(Color.Green); 
   spyGlass.EnsureVisible = false; 
   spyGlass.Offset = new LeadPoint(0, 0); 
   spyGlass.HideCursorWhileWorking = true; 
   spyGlass.IdleCursor = Cursors.Cross; 
   spyGlass.RoundRectangleRadius = new LeadSize(25, 25); 
   spyGlass.Shape = ImageViewerSpyGlassShape.RoundRectangle; 
   spyGlass.Size = new LeadSize(200, 200); 
 
   // Get inverted copy of the RasterImage in the Viewer control 
   RasterImage invertedRasterImage = _imageViewer.Image.Clone(); 
   InvertCommand invertCommand = new InvertCommand(); 
   invertCommand.Run(invertedRasterImage); 
 
   // Overlay the inverted image on the spy glass 
   spyGlass.DrawImage += (object sender, ImageViewerSpyGlassDrawImageEventArgs e) => 
   { 
      Image img = RasterImageConverter.ChangeToImage(invertedRasterImage, new ChangeToImageOptions()); 
      e.Context.DrawImage(img, Point.Empty); 
      _form.Text = 
      $"Destination Rectangle: (" + 
      $"{e.DestinationRectangle.X}, {e.DestinationRectangle.Y}, {e.DestinationRectangle.Width}, {e.DestinationRectangle.Height}), " + 
      $"Offset: {e.Offset.X}, {e.Offset.Y}"; 
   }; 
 
   // Add spyglass interactive mode 
   _imageViewer.InteractiveModes.BeginUpdate(); 
   _imageViewer.InteractiveModes.Add(spyGlass); 
   _imageViewer.InteractiveModes.EndUpdate(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
Event Data
ParameterTypeDescription
senderobjectThe source of the event.
eImageViewerSpyGlassDrawImageEventArgsThe event data.
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Controls Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.