←Select platform

MagnifyGlassEffect Class

Summary

Creates an effect that can be used to zoom in on a portion of an image with options to specify size, shape and color of the magnify glass and crosshairs.

Syntax

C#
VB
C++
public class MagnifyGlassEffect : System.Windows.Media.Effects.ShaderEffect, System.Windows.Media.Animation.IAnimatable
Public Class MagnifyGlassEffect  
   Inherits System.Windows.Media.Effects.ShaderEffect 
   Implements System.Windows.Media.Animation.IAnimatable 
public ref class MagnifyGlassEffect : public System.Windows.Media.Effects.ShaderEffect, System.Windows.Media.Animation.IAnimatable

Example

C#
VB
Silverlight C#
Silverlight VB
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Windows.Controls 
Imports Leadtools.Windows.Media 
Imports Leadtools.Windows.Media.Effects 
 
Class MagnifyGlassEffectExampleWindow 
   Inherits Window 
   Private theViewer As ImageViewer 
   Public Sub New() 
      Dim sp As New StackPanel() 
      Content = sp 
 
      theViewer = New ImageViewer() 
 
      theViewer.HorizontalAlignment = HorizontalAlignment.Center 
      theViewer.VerticalAlignment = VerticalAlignment.Top 
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left 
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top 
 
      sp.Children.Add(theViewer) 
 
      ' Load an image into the viewer 
      theViewer.Source = New BitmapImage(New Uri(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg"))) 
 
      Title = "MagnifyGlassEffect - Click and and move the mouse cursor on the image to see the effect" 
 
      AddHandler theViewer.PreviewMouseDown, AddressOf theViewer_PreviewMouseDown 
      AddHandler theViewer.MouseMove, AddressOf theViewer_MouseMove 
      AddHandler theViewer.MouseUp, AddressOf theViewer_MouseUp 
   End Sub 
 
   Private Sub theViewer_PreviewMouseDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs) 
      Dim effect As New MagnifyGlassEffect() 
 
      Dim pos As Point = e.GetPosition(theViewer) 
 
      Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource) 
      If Not source Is Nothing Then 
         effect.Center = New Point( _ 
            (1.0 * pos.X) / source.PixelWidth, _ 
            (1.0 * pos.Y) / source.PixelHeight) 
 
         effect.Radius = 0.25 
         effect.AspectRatio = 1.0 
         effect.ScaleFactor = 2.0 
         effect.Color = Colors.Blue 
         effect.Border = 1 
         effect.CrossHairs = 1 
         theViewer.ImageEffect = effect 
      End If 
   End Sub 
 
   Private Sub theViewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) 
      Dim effect As MagnifyGlassEffect = DirectCast(theViewer.ImageEffect, MagnifyGlassEffect) 
      If Not effect Is Nothing Then 
         Dim pos As Point = e.GetPosition(theViewer) 
 
         Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource) 
         If Not source Is Nothing Then 
            effect.Center = New Point( _ 
               (1.0 * pos.X) / source.PixelWidth, _ 
               (1.0 * pos.Y) / source.PixelHeight) 
         End If 
      End If 
   End Sub 
 
   Private Sub theViewer_MouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs) 
      If Not theViewer.ImageEffect Is Nothing Then 
         theViewer.ImageEffect = Nothing 
      End If 
   End Sub 
End Class 
 
Public NotInheritable Class LEAD_VARS 
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.Windows.Controls; 
using Leadtools.Windows.Media; 
using Leadtools.Windows.Media.Effects; 
 
class MagnifyGlassEffectExampleWindow : Window 
{ 
   private ImageViewer theViewer; 
   public MagnifyGlassEffectExampleWindow() 
   { 
      StackPanel sp = new StackPanel(); 
      Content = sp; 
 
      theViewer = new ImageViewer(); 
 
      theViewer.HorizontalAlignment = HorizontalAlignment.Center; 
      theViewer.VerticalAlignment = VerticalAlignment.Top; 
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left; 
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top; 
 
      sp.Children.Add(theViewer); 
 
      // Load an image into the viewer 
      theViewer.Source = new BitmapImage(new Uri(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg"))); 
 
      Title = "MagnifyGlassEffect - Click and and move the mouse cursor on the image to see the effect"; 
 
      theViewer.PreviewMouseDown += new MouseButtonEventHandler(theViewer_PreviewMouseDown); 
      theViewer.MouseMove += new MouseEventHandler(theViewer_MouseMove); 
      theViewer.MouseUp += new MouseButtonEventHandler(theViewer_MouseUp); 
   } 
 
   private void theViewer_PreviewMouseDown(object sender, MouseButtonEventArgs e) 
   { 
      MagnifyGlassEffect effect = new MagnifyGlassEffect(); 
 
      Point pos = e.GetPosition(theViewer); 
 
      BitmapSource source = theViewer.Source as BitmapSource; 
      if(source != null) 
      { 
         effect.Center = new Point( 
            (1.0 * pos.X) / source.PixelWidth, 
            (1.0 * pos.Y) / source.PixelHeight); 
 
         effect.Radius = 0.25; 
         effect.AspectRatio = 1.0; 
         effect.ScaleFactor = 2.0; 
         effect.Color = Colors.Blue; 
         effect.Border = 1; 
         effect.CrossHairs = 1; 
         theViewer.ImageEffect = effect; 
      } 
   } 
 
   private void theViewer_MouseMove(object sender, MouseEventArgs e) 
   { 
      MagnifyGlassEffect effect = theViewer.ImageEffect as MagnifyGlassEffect; 
      if(effect != null) 
      { 
         Point pos = e.GetPosition(theViewer); 
 
         BitmapSource source = theViewer.Source as BitmapSource; 
         if(source != null) 
         { 
            effect.Center = new Point( 
               (1.0 * pos.X) / source.PixelWidth, 
               (1.0 * pos.Y) / source.PixelHeight); 
         } 
      } 
   } 
 
   private void theViewer_MouseUp(object sender, MouseButtonEventArgs e) 
   { 
      if(theViewer.ImageEffect != null) 
      { 
         theViewer.ImageEffect = null; 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.Windows.Media; 
using Leadtools.Windows.Media.Effects; 
using Leadtools.Windows.Controls; 
 
class MagnifyGlassEffectExampleWindow : UserControl 
{ 
   private ImageViewer theViewer; 
   public MagnifyGlassEffectExampleWindow() 
   { 
      StackPanel sp = new StackPanel(); 
      Content = sp; 
 
      theViewer = new ImageViewer(); 
 
      theViewer.HorizontalAlignment = HorizontalAlignment.Center; 
      theViewer.VerticalAlignment = VerticalAlignment.Top; 
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left; 
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top; 
 
      sp.Children.Add(theViewer); 
 
      // Load an image into the viewer 
      theViewer.Source = new BitmapImage(new Uri(LeadtoolsExamples.Common.ImagesPath.Path + "Cannon.jpg")); 
 
      theViewer.MouseMove += new MouseEventHandler(theViewer_MouseMove); 
   } 
 
   private void theViewer_PreviewMouseDown(object sender, MouseButtonEventArgs e) 
   { 
      MagnifyGlassEffect effect = new MagnifyGlassEffect(); 
 
      Point pos = e.GetPosition(theViewer); 
 
      BitmapSource source = theViewer.Source as BitmapSource; 
      if(source != null) 
      { 
         effect.Center = new Point( 
            (1.0 * pos.X) / source.PixelWidth, 
            (1.0 * pos.Y) / source.PixelHeight); 
 
         effect.Radius = 0.25; 
         effect.AspectRatio = 1.0; 
         effect.ScaleFactor = 2.0; 
         effect.Color = Colors.Blue; 
         effect.Border = 1; 
         effect.CrossHairs = 1; 
         theViewer.ImageEffect = effect; 
      } 
   } 
 
   private void theViewer_MouseMove(object sender, MouseEventArgs e) 
   { 
      MagnifyGlassEffect effect = theViewer.ImageEffect as MagnifyGlassEffect; 
      if(effect != null) 
      { 
         Point pos = e.GetPosition(theViewer); 
 
         BitmapSource source = theViewer.Source as BitmapSource; 
         if(source != null) 
         { 
            effect.Center = new Point( 
               (1.0 * pos.X) / source.PixelWidth, 
               (1.0 * pos.Y) / source.PixelHeight); 
         } 
      } 
   } 
 
   private void theViewer_MouseUp(object sender, MouseButtonEventArgs e) 
   { 
      if(theViewer.ImageEffect != null) 
      { 
         theViewer.ImageEffect = null; 
      } 
   } 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Windows.Controls 
Imports Leadtools.Windows.Media 
Imports Leadtools.Windows.Media.Effects 
 
Class MagnifyGlassEffectExampleWindow 
   Inherits UserControl 
   Private theViewer As ImageViewer 
   Public Sub New() 
      Dim sp As New StackPanel() 
      Content = sp 
 
      theViewer = New ImageViewer() 
 
      theViewer.HorizontalAlignment = HorizontalAlignment.Center 
      theViewer.VerticalAlignment = VerticalAlignment.Top 
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left 
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top 
 
      sp.Children.Add(theViewer) 
 
      ' Load an image into the viewer 
      theViewer.Source = New BitmapImage(New Uri(LeadtoolsExamples.Common.ImagesPath.Path + "Cannon.jpg")) 
 
      AddHandler theViewer.MouseMove, AddressOf theViewer_MouseMove 
   End Sub 
 
   Private Sub theViewer_PreviewMouseDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs) 
      Dim effect As New MagnifyGlassEffect() 
 
      Dim pos As Point = e.GetPosition(theViewer) 
 
      Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource) 
      If Not source Is Nothing Then 
         effect.Center = New Point( _ 
            (1.0 * pos.X) / source.PixelWidth, _ 
            (1.0 * pos.Y) / source.PixelHeight) 
 
         effect.Radius = 0.25 
         effect.AspectRatio = 1.0 
         effect.ScaleFactor = 2.0 
         effect.Color = Colors.Blue 
         effect.Border = 1 
         effect.CrossHairs = 1 
         theViewer.ImageEffect = effect 
      End If 
   End Sub 
 
   Private Sub theViewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) 
      Dim effect As MagnifyGlassEffect = DirectCast(theViewer.ImageEffect, MagnifyGlassEffect) 
      If Not effect Is Nothing Then 
         Dim pos As Point = e.GetPosition(theViewer) 
 
         Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource) 
         If Not source Is Nothing Then 
            effect.Center = New Point( _ 
               (1.0 * pos.X) / source.PixelWidth, _ 
               (1.0 * pos.Y) / source.PixelHeight) 
         End If 
      End If 
   End Sub 
 
   Private Sub theViewer_MouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs) 
      If Not theViewer.ImageEffect Is Nothing Then 
         theViewer.ImageEffect = Nothing 
      End If 
   End Sub 
End Class 
<Window x:Class="MagnifyGlassEffectExample" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:leadControls="clr-namespace:Leadtools.Windows.Controls;assembly=Leadtools.Windows.Controls" 
xmlns:leadEffects="clr-namespace:Leadtools.Windows.Media.Effects;assembly=Leadtools.Windows.Media.Effects" 
Height="600" Width="800"> 
   <StackPanel> 
      <leadControls:ImageViewer 
            HorizontalAlignment="Center" VerticalAlignment="Top" 
            ImageHorizontalAlignment="Left" ImageVerticalAlignment="Top" 
            Source="file:///c:\users\Public\Documents\LEADTOOLS Images\cannon.jpg"> 
         <leadControls:ImageViewer.ImageEffect> 
            <leadEffects:MagnifyGlassEffect 
               Center="0.5,0.5" Radius="0.25" AspectRatio="1.0" ScaleFactor="2.0" 
               Color="Blue" Border="1" CrossHairs="1"> 
            </leadEffects:MagnifyGlassEffect> 
         </leadControls:ImageViewer.ImageEffect> 
      </leadControls:ImageViewer> 
   </StackPanel> 
</Window> 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.Windows.Media.Effects Assembly
Click or drag to resize