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





Applies one of several types of automatic color leveling to an image.

Syntax

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

AutoColorLevelCommandBitmapEffect ...

XAML Property Element Usage 

AutoColorLevelCommandBitmapEffect ...

Example

Run the AutoColorLevelCommandBitmapEffect on an image.

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

   ' Initialize Effect
   Dim effect As AutoColorLevelCommandBitmapEffect = New AutoColorLevelCommandBitmapEffect()
   effect.BlackClip = 50
   effect.Flag = AutoColorLevelCommandBitmapEffectsFlags.None
   effect.Type = AutoColorLevelCommandBitmapEffectsType.Level
   effect.WhiteClip = 50
   element.BitmapEffect = effect

   ' Initialize Animations
   Dim animation1 As Int32Animation = New Int32Animation()
   animation1.From = 0
   animation1.To = 10000
   animation1.By = 1
   animation1.Duration = New Duration(TimeSpan.FromSeconds(3.0))
   animation1.AutoReverse = True
   animation1.RepeatBehavior = RepeatBehavior.Forever
   Dim animation2 As Int32Animation = New Int32Animation()
   animation2.From = 0
   animation2.To = 10000
   animation2.By = 1
   animation2.Duration = New Duration(TimeSpan.FromSeconds(10.0))
   animation2.AutoReverse = True
   animation2.RepeatBehavior = RepeatBehavior.Forever



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

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

 
   // Initialize Effect 
   AutoColorLevelCommandBitmapEffect effect = new AutoColorLevelCommandBitmapEffect(); 
   effect.BlackClip = 50; 
   effect.Flag = AutoColorLevelCommandBitmapEffectsFlags.None; 
   effect.Type = AutoColorLevelCommandBitmapEffectsType.Level; 
   effect.WhiteClip = 50; 
 
   element.BitmapEffect = effect; 
 
   // Initialize Animations 
   Int32Animation animation1 = new Int32Animation(); 
   animation1.From = 0; 
   animation1.To = 10000; 
   animation1.By = 1; 
   animation1.Duration = new Duration(TimeSpan.FromSeconds(3.0)); 
   animation1.AutoReverse = true; 
   animation1.RepeatBehavior = RepeatBehavior.Forever; 
   Int32Animation animation2 = new Int32Animation(); 
   animation2.From = 0; 
   animation2.To = 10000; 
   animation2.By = 1; 
   animation2.Duration = new Duration(TimeSpan.FromSeconds(10.0)); 
   animation2.AutoReverse = true; 
   animation2.RepeatBehavior = RepeatBehavior.Forever; 
 
 
 
   // Initialize and run Storyboard 
   Storyboard storyboard = new Storyboard(); 
   Storyboard.SetTargetName(animation1, "AnimatedBitmapEffect"); 
   Storyboard.SetTargetProperty(animation1, new PropertyPath(AutoColorLevelCommandBitmapEffect.BlackClipProperty)); 
   element.RegisterName("AnimatedBitmapEffect", effect); 
   storyboard.Children.Add(animation1); 
   Storyboard.SetTargetName(animation2, "AnimatedBitmapEffect"); 
   Storyboard.SetTargetProperty(animation2, new PropertyPath(AutoColorLevelCommandBitmapEffect.WhiteClipProperty)); 
   element.RegisterName("AnimatedBitmapEffect", effect); 
   storyboard.Children.Add(animation2); 
 
   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:AutoColorLevelCommandBitmapEffect x:Name="MyBitmapEffect" BlackClip="100" WhiteClip="500" /> 
      </Image.BitmapEffect> 
      <Image.Triggers> 
        <EventTrigger RoutedEvent="Image.Loaded"> 
          <BeginStoryboard> 
            <Storyboard> 
              <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="BlackClip" From="0" To="10000" Duration="0:0:3" RepeatBehavior="Forever" AutoReverse="True" /> 
              <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="WhiteClip" From="0" To="10000" Duration="0:0:10" RepeatBehavior="Forever" AutoReverse="True" /> 
            </Storyboard> 
          </BeginStoryboard> 
        </EventTrigger> 
      </Image.Triggers> 
    </Image> 
  </Grid> 
</Page>

Remarks

  • This command makes the dark values darker and the light values lighter, which automatically enhances shadows and brightens the image. It also maximizes the tonal range of the image. It enhances the contrast and intensity using the image's histogram and a color distribution-based algorithm.
  • If the image is a grayscale image, then AutoColorLevelCommandBitmapEffectsType.Level, AutoColorLevelCommandBitmapEffectsType.Contrast and AutoColorLevelCommandBitmapEffectsType.Intensity give identical results.
  • As an example, the following figure shows an image before any automatic color leveling has been performed:

    The following figure shows what would happen if you start with the original image and apply the AutoColorLevelCommandBitmapEffect using AutoColorLevelCommandBitmapEffectsType.Level flag.

    The following figure shows what would happen if you start with the original image and apply the AutoColorLevelCommandBitmapEffect using AutoColorLevelCommandBitmapEffectsType.Intensity flag.

    The following figure shows what would happen if you start with the original image and apply the AutoColorLevelCommandBitmapEffect using AutoColorLevelCommandBitmapEffectsType.Contrast flag.

  • 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.AutoColorLevelCommandBitmapEffect

Requirements

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

See Also