Occurs when the spy glass is working.
public event EventHandler<ImageViewerSpyGlassDrawImageEventArgs> DrawImage
public:
event EventHandler<Leadtools::Controls::ImageViewerSpyGlassDrawImageEventArgs^>^ DrawImage
ImageViewerSpyGlassInteractiveMode will fire this event while working. It is up to the implementers and listeners to draw the effect on the context.
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";
}
Parameter | Type | Description |
---|---|---|
sender | object | The source of the event. |
e | ImageViewerSpyGlassDrawImageEventArgs | The event data. |
ImageViewerSpyGlassInteractiveMode Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document