Leadtools.Windows.Media.Effects Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.02.15
SpatialFilterCommandBitmapEffect Class
See Also  Members   Example 
Leadtools.Windows.Media.Effects.Effects Namespace : SpatialFilterCommandBitmapEffect Class





Imposes a spatial filter on an image. This command is available in LEADTOOLS Document and Medical Imaging toolkits.

Syntax

Visual Basic (Declaration) 
Public Class SpatialFilterCommandBitmapEffect 
   Inherits RasterCommandBitmapEffect
Visual Basic (Usage)Copy Code
Dim instance As SpatialFilterCommandBitmapEffect
C# 
public class SpatialFilterCommandBitmapEffect : RasterCommandBitmapEffect 
Managed Extensions for C++ 
public __gc class SpatialFilterCommandBitmapEffect : public RasterCommandBitmapEffect 
C++/CLI 
public ref class SpatialFilterCommandBitmapEffect : public RasterCommandBitmapEffect 
XAML Property Element Usage 

SpatialFilterCommandBitmapEffect ...

Example

Run the SpatialFilterCommandBitmapEffect on an image and apply a Prewitt edge detection filter.

Visual BasicCopy Code
Public Sub SpatialFilterCommandBitmapEffectExample(ByVal element As FrameworkElement)
   Dim effect As SpatialFilterCommandBitmapEffect = New SpatialFilterCommandBitmapEffect()
   effect.Divisor = 1
   effect.Bias = 0
   effect.Matrix = New Integer() {-1, -1, -1, -1, 8, -1, -1, -1, -1}
   element.BitmapEffect = effect

   Dim storyboard As Storyboard = New Storyboard()

   Dim animation1 As Int32Animation = New Int32Animation()
   animation1.From = 1
   animation1.To = 16
   animation1.Duration = New Duration(TimeSpan.Parse("0:0:2"))
   animation1.RepeatBehavior = RepeatBehavior.Forever
   animation1.AutoReverse = True

   storyboard.SetTargetName(animation1, "AnimatedBitmapEffect")
   storyboard.SetTargetProperty(animation1, New PropertyPath(SpatialFilterCommandBitmapEffect.BiasProperty))
   element.RegisterName("AnimatedBitmapEffect", effect)
   storyboard.Children.Add(animation1)

   Dim animation2 As Int32Animation = New Int32Animation()
   animation2.From = 2
   animation2.To = 32
   animation2.Duration = New Duration(TimeSpan.Parse("0:0:2"))
   animation2.RepeatBehavior = RepeatBehavior.Forever
   animation2.AutoReverse = True

   storyboard.SetTargetName(animation2, "AnimatedBitmapEffect")
   storyboard.SetTargetProperty(animation2, New PropertyPath(SpatialFilterCommandBitmapEffect.DivisorProperty))
   element.RegisterName("AnimatedBitmapEffect", effect)
   storyboard.Children.Add(animation2)

   storyboard.Begin(element)
End Sub
C#Copy Code
public void SpatialFilterCommandBitmapEffectExample(FrameworkElement element) 

   SpatialFilterCommandBitmapEffect effect = new SpatialFilterCommandBitmapEffect(); 
   effect.Divisor = 1; 
   effect.Bias = 0; 
   effect.Matrix = new int[] { -1, -1, -1, -1, 8, -1, -1, -1, -1 }; 
   element.BitmapEffect = effect; 
 
   Storyboard storyboard = new Storyboard(); 
 
   Int32Animation animation1 = new Int32Animation(); 
   animation1.From = 1; 
   animation1.To = 16; 
   animation1.Duration = new Duration(TimeSpan.Parse("0:0:2")); 
   animation1.RepeatBehavior = RepeatBehavior.Forever; 
   animation1.AutoReverse = true; 
 
   Storyboard.SetTargetName(animation1, "AnimatedBitmapEffect"); 
   Storyboard.SetTargetProperty(animation1, new PropertyPath(SpatialFilterCommandBitmapEffect.BiasProperty)); 
   element.RegisterName("AnimatedBitmapEffect", effect); 
   storyboard.Children.Add(animation1); 
 
   Int32Animation animation2 = new Int32Animation(); 
   animation2.From = 2; 
   animation2.To = 32; 
   animation2.Duration = new Duration(TimeSpan.Parse("0:0:2")); 
   animation2.RepeatBehavior = RepeatBehavior.Forever; 
   animation2.AutoReverse = true; 
 
   Storyboard.SetTargetName(animation2, "AnimatedBitmapEffect"); 
   Storyboard.SetTargetProperty(animation2, new PropertyPath(SpatialFilterCommandBitmapEffect.DivisorProperty)); 
   element.RegisterName("AnimatedBitmapEffect", effect); 
   storyboard.Children.Add(animation2); 
 
   storyboard.Begin(element); 
}
XAMLCopy Code
<!-- Broken.  Not sure on this yet. --> 
<Page Title="CSAnimateEffect" Height="391" Width="300" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:lteffects="clr-namespace:Leadtools.Windows.Media.Effects.Effects;assembly=Leadtools.Windows.Media.Effects"> 
  <Grid> 
    <Image Margin="10,10,10,10" HorizontalAlignment="Center" VerticalAlignment="Center" Source="C:\Program Files\LEAD Technologies, Inc\LEADTOOLS 15\Images\slave.jpg"> 
      <Image.BitmapEffect> 
        <lteffects:SpatialFilterCommandBitmapEffect x:Name="AnimatedBitmapEffect" /> 
      </Image.BitmapEffect> 
      <Image.Triggers> 
        <EventTrigger RoutedEvent="Image.Loaded"> 
          <BeginStoryboard> 
            <Storyboard> 
              <Int32Animation Storyboard.TargetName="AnimatedBitmapEffect" Storyboard.TargetProperty="Bias" From="0" To="255" Duration="0:0:5" RepeatBehavior="Forever" AutoReverse="true" /> 
              <Int32Animation Storyboard.TargetName="AnimatedBitmapEffect" Storyboard.TargetProperty="Divisor" From="1" To="255" Duration="0:0:5" RepeatBehavior="Forever" AutoReverse="true" /> 
            </Storyboard> 
          </BeginStoryboard> 
        </EventTrigger> 
      </Image.Triggers> 
    </Image> 
  </Grid> 
</Page>

Remarks

  • A spatial filter recomputes the brightness of each pixel in an image by using a weighted averaging technique that considers the surrounding pixels. Spatial filters are used for operations such as sharpening an image or detecting edges within the image.
  • The SpatialFilterCommandBitmapEffect works best with 24-bit, 16-bit, or grayscale images. If the image uses a color palette, this command matches the new brightness value of each pixel to the nearest color in the existing palette.
  • It is beyond the scope of this documentation to explain how applying various weighting factors affects an image. For such information, refer to a textbook on image processing like Digital Image Processing: Principles and Applications, by Gregory A. Baxes.

Inheritance Hierarchy

System.Object
   System.Windows.Threading.DispatcherObject
      System.Windows.DependencyObject
         System.Windows.Freezable
            System.Windows.Media.Animation.Animatable
               System.Windows.Media.Effects.BitmapEffect
                  Leadtools.Windows.Media.Effects.RasterCommandBitmapEffect
                     Leadtools.Windows.Media.Effects.Effects.SpatialFilterCommandBitmapEffect

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Vista, and Windows Server 2003

See Also