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





Converts an image to a grayscale image, then enhances the color components based on the class properties. This class is available in LEADTOOLS LEADTOOLS Document and Medical Imagingoolkits.

Syntax

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

ConvertToColoredGrayCommandBitmapEffect ...

Example

Run the ConvertToColoredGrayCommandBitmapEffect on an image with RedFactor = 300, GreenFactor = 590, BlueFactor = 110, RedGrayFactor = 500, GreenGrayFactor = 300, BlueGrayFactor = 200.

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

   ' Initialize Effect
   Dim effect As ConvertToColoredGrayCommandBitmapEffect = New ConvertToColoredGrayCommandBitmapEffect()
   effect.RedFactor = 300
   effect.GreenFactor = 590
   effect.BlueFactor = 110
   effect.RedGrayFactor = 500
   effect.GreenGrayFactor = 300
   effect.BlueGrayFactor = 200
   element.BitmapEffect = effect

   ' Initialize Animations
   Dim animation1 As Int32Animation = New Int32Animation()
   animation1.From = 0
   animation1.To = 1000
   animation1.By = 1
   animation1.Duration = New Duration(TimeSpan.FromSeconds(3.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(ConvertToColoredGrayCommandBitmapEffect.BlueGrayFactorProperty))
   element.RegisterName("AnimatedBitmapEffect", effect)
   storyboard.Children.Add(animation1)

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

 
   // Initialize Effect 
   ConvertToColoredGrayCommandBitmapEffect effect = new ConvertToColoredGrayCommandBitmapEffect(); 
   effect.RedFactor = 300; 
   effect.GreenFactor = 590; 
   effect.BlueFactor = 110; 
   effect.RedGrayFactor = 500; 
   effect.GreenGrayFactor = 300; 
   effect.BlueGrayFactor = 200; 
   element.BitmapEffect = effect; 
 
   // Initialize Animations 
   Int32Animation animation1 = new Int32Animation(); 
   animation1.From = 0; 
   animation1.To = 1000; 
   animation1.By = 1; 
   animation1.Duration = new Duration(TimeSpan.FromSeconds(3.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(ConvertToColoredGrayCommandBitmapEffect.BlueGrayFactorProperty)); 
   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 15\Images\slave.jpg"> 
      <Image.BitmapEffect> 
        <lteffects:ConvertToColoredGrayCommandBitmapEffect x:Name="MyBitmapEffect" /> 
      </Image.BitmapEffect> 
      <Image.Triggers> 
        <EventTrigger RoutedEvent="Image.Loaded"> 
          <BeginStoryboard> 
            <Storyboard> 
              <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="BlueGrayFactor" From="0" To="1000" Duration="0:0:3" RepeatBehavior="Forever" AutoReverse="True" /> 
            </Storyboard> 
          </BeginStoryboard> 
        </EventTrigger> 
      </Image.Triggers> 
    </Image> 
  </Grid> 
</Page>

Remarks

  • This class is more general than the GrayScaleExtendedCommandBitmapEffect class. The ConvertToColoredGrayCommandBitmapEffect class can be used to give images a "sepia" look by adding a blue or brown color.
  • RedFactor + GreenFactor + BlueFactor must equal 1000. (Internally the values are divided by 1000).

  • For each pixel in the image the red, green and blue values are modified by the RedFactor, GreenFactor and BlueFactor properties, respectively. This allows the user to give more weight to one color, essentially enhancing that color, before the pixel is converted to grayscale.
  • For example, if this class is used with the RedFactor set to 500, the GreenFactor set to 250 and the BlueFactor set to 250, the red value of each pixel will get 50 percent of the weight when determining the grayscale value. The green value will get 25 percent of the weight and the blue value will get 25 percent of the weight when determining the grayscale value. This highlights or enhances the red in the image, prior to conversion to grayscale. Upon conversion to grayscale, the red, green and blue components of the output pixel are the same. Call this value G. Therefore, the RGB values for the pixel would be (G, G, G).
  • Once the grayscale value for the pixel has been obtained, the red component of the output pixel can be further modified using the RedGrayFactor value. The equation for this can be seen below:
  • The green and blue components are found similarly, using the GreenGrayFactor and the BlueGrayFactor values, respectively.
  • Please note that the RedGrayFactor, GreenGrayFactor and BlueGrayFactor values can be negative. A negative value results in a decrease in pixel intensity. A positive value results in an increase in pixel intensity.
  • If RedGrayFactor = GreenGrayFactor = BlueGrayFactor = 0, then the output is the same as the output from the GrayScaleExtendedCommandBitmapEffect method.
  • 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.ConvertToColoredGrayCommandBitmapEffect

Requirements

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

See Also