LEADTOOLS WPF and Silverlight (Leadtools.Windows.Media.Effects assembly)

CircularShutterEffect Class

Show in webframe
Example 





Members 
Creates a circular or elliptical shutter effect by using a center point, radius, aspect ratio and a color to clear the area outside the shutter.
Object Model
Syntax
'Declaration
 
Public Class CircularShutterEffect 
   Inherits System.Windows.Media.Effects.ShaderEffect
   Implements System.Windows.Media.Animation.IAnimatable 
'Usage
 
Dim instance As CircularShutterEffect

            

            
Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Controls
Imports Leadtools.Windows.Media
Imports Leadtools.Windows.Media.Effects

Class CircularShutterEffectExampleWindow
   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 = "CircularShutterEffect - 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 CircularShutterEffect()

      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.ClearColor = Colors.Blue
         theViewer.ImageEffect = effect
      End If
   End Sub

   Private Sub theViewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
      Dim effect As CircularShutterEffect = DirectCast(theViewer.ImageEffect, CircularShutterEffect)
      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 CircularShutterEffectExampleWindow : Window
{
   private ImageViewer theViewer;
   public CircularShutterEffectExampleWindow()
   {
      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 = "CircularShutterEffect - 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)
   {
      CircularShutterEffect effect = new CircularShutterEffect();

      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.ClearColor = Colors.Blue;
         theViewer.ImageEffect = effect;
      }
   }

   private void theViewer_MouseMove(object sender, MouseEventArgs e)
   {
      CircularShutterEffect effect = theViewer.ImageEffect as CircularShutterEffect;
      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 CircularShutterEffectExampleWindow : UserControl
{
   private ImageViewer theViewer;
   public CircularShutterEffectExampleWindow()
   {
      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)
   {
      CircularShutterEffect effect = new CircularShutterEffect();

      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.ClearColor = Colors.Blue;
         theViewer.ImageEffect = effect;
      }
   }

   private void theViewer_MouseMove(object sender, MouseEventArgs e)
   {
      CircularShutterEffect effect = theViewer.ImageEffect as CircularShutterEffect;
      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 CircularShutterEffectExampleWindow
   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 CircularShutterEffect()

      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.ClearColor = Colors.Blue
         theViewer.ImageEffect = effect
      End If
   End Sub

   Private Sub theViewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
      Dim effect As CircularShutterEffect = DirectCast(theViewer.ImageEffect, CircularShutterEffect)
      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="CircularShutterEffectExample"
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:CircularShutterEffect Center="0.5,0.5" Radius="0.25" AspectRatio="1.0" ClearColor="Blue">
            </leadEffects:CircularShutterEffect>
         </leadControls:ImageViewer.ImageEffect>
      </leadControls:ImageViewer>
   </StackPanel>
</Window>
Requirements

Target Platforms

See Also

Reference

CircularShutterEffect Members
Leadtools.Windows.Media.Effects Namespace
Introduction

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.