Leadtools.Windows.Media.Effects Send comments on this topic. | Back to Introduction - LEADTOOLS WPF | Help Version 16.5.9.25
DynamicBinaryCommandBitmapEffect Class
See Also  Members   Example 
Leadtools.Windows.Media.Effects.Color Namespace : DynamicBinaryCommandBitmapEffect Class





Converts an image into a black and white image without changing its bits per pixel by using a local threshold value for each pixel of the image.

Syntax

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

DynamicBinaryCommandBitmapEffect ...

XAML Property Element Usage 

DynamicBinaryCommandBitmapEffect ...

Example

Run the DynamicBinaryCommandBitmapEffect on an image.

Visual BasicCopy Code
Public Sub DynamicBinaryCommandBitmapEffectExample(ByVal element As FrameworkElement)

   ' Initialize Effect
   Dim effect As DynamicBinaryCommandBitmapEffect = New DynamicBinaryCommandBitmapEffect()
   effect.Dimension = 4
   effect.LocalContrast = 16
   element.BitmapEffect = effect

   ' Initialize Animations
   Dim animation1 As Int32Animation = New Int32Animation()
   animation1.From = 1
   animation1.To = 50
   animation1.By = 1
   animation1.Duration = New Duration(TimeSpan.FromSeconds(5.0))
   animation1.AutoReverse = True
   animation1.RepeatBehavior = RepeatBehavior.Forever

   ' Initialize and run Storyboard
   Dim storyboard As Storyboard = New Storyboard()
   storyboard.SetTargetName(animation1, "AnimatedBitmapEffect")
   storyboard.SetTargetProperty(animation1, New PropertyPath(DynamicBinaryCommandBitmapEffect.DimensionProperty))
   element.RegisterName("AnimatedBitmapEffect", effect)
   storyboard.Children.Add(animation1)

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

 
   // Initialize Effect 
   DynamicBinaryCommandBitmapEffect effect = new DynamicBinaryCommandBitmapEffect(); 
   effect.Dimension = 4; 
   effect.LocalContrast = 16; 
   element.BitmapEffect = effect; 
 
   // Initialize Animations 
   Int32Animation animation1 = new Int32Animation(); 
   animation1.From = 1; 
   animation1.To = 50; 
   animation1.By = 1; 
   animation1.Duration = new Duration(TimeSpan.FromSeconds(5.0)); 
   animation1.AutoReverse = true; 
   animation1.RepeatBehavior = RepeatBehavior.Forever; 
 
   // Initialize and run Storyboard 
   Storyboard storyboard = new Storyboard(); 
   Storyboard.SetTargetName(animation1, "AnimatedBitmapEffect"); 
   Storyboard.SetTargetProperty(animation1, new PropertyPath(DynamicBinaryCommandBitmapEffect.DimensionProperty)); 
   element.RegisterName("AnimatedBitmapEffect", effect); 
   storyboard.Children.Add(animation1); 
 
   storyboard.Begin(element); 
}
XAMLCopy Code
<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.Color;assembly=Leadtools.Windows.Media.Effects"> 
  <Grid> 
    <Image Margin="10,10,10,10" HorizontalAlignment="Center" VerticalAlignment="Center" Source="C:\Program Files\LEAD Technologies, Inc\LEADTOOLS 16\Images\slave.jpg"> 
      <Image.BitmapEffect> 
        <lteffects:DynamicBinaryCommandBitmapEffect x:Name="MyBitmapEffect" /> 
      </Image.BitmapEffect> 
      <Image.Triggers> 
        <EventTrigger RoutedEvent="Image.Loaded"> 
          <BeginStoryboard> 
            <Storyboard> 
              <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="Dimension" From="1" To="50" Duration="0:0:5" RepeatBehavior="Forever" AutoReverse="True" /> 
            </Storyboard> 
          </BeginStoryboard> 
        </EventTrigger> 
      </Image.Triggers> 
    </Image> 
  </Grid> 
</Page>

Remarks

  • This class converts an image into a black and white image without changing its bits per pixel.
  • Each pixel is compared to a dynamically-calculated threshold. If the intensity of the pixel is higher (that is, the pixel is brighter) than the dynamic threshold, the pixel will be set to white. If the intensity of the pixel is lower (that is, the pixel is darker) than the dynamic threshold, the pixel will be set to black.
  • Here are some hints on using this class:
  • Increasing the LocalContrast property increases the number of pixels that use the global threshold. This tends to preserve the general aspect of the image and reduces the improvement in the areas with many details. Reducing the LocalContrast property, increases the contrast in areas with many details.
  • Increasing the Dimension property increases the area used for local contrast. This makes the color changes smoother.
  • This class is good as a prerequisite for converting scanned images to 1-bit, because it uses one threshold for background and another for text.
  • This command does not support signed data images.

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.Color.DynamicBinaryCommandBitmapEffect

Requirements

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

See Also