Converts any image to a gray scale image without changing its resolution.
Syntax
XAML Property Element Usage | |
---|
GrayScaleExtendedCommandBitmapEffect ... |
Example
Run the GrayScaleExtendedCommandBitmapEffect on an image with RedFactor = 300, GreenFactor = 590, and BlueFactor = 110.
Visual Basic | Copy Code |
---|
Public Sub GrayScaleExtendedCommandBitmapEffectExample(ByVal element As FrameworkElement)
Dim effect As GrayScaleExtendedCommandBitmapEffect = New GrayScaleExtendedCommandBitmapEffect()
effect.RedFactor = 300
effect.GreenFactor = 590
effect.BlueFactor = 110
element.BitmapEffect = effect
Dim animation1 As Int32Animation = New Int32Animation()
animation1.From = 0
animation1.To = 1000
animation1.By = 1
animation1.Duration = New Duration(TimeSpan.FromSeconds(2.0))
animation1.AutoReverse = True
animation1.RepeatBehavior = RepeatBehavior.Forever
Dim animation2 As Int32Animation = New Int32Animation()
animation2.From = 0
animation2.To = 1000
animation2.By = 1
animation2.Duration = New Duration(TimeSpan.FromSeconds(3.0))
animation2.AutoReverse = True
animation2.RepeatBehavior = RepeatBehavior.Forever
Dim animation3 As Int32Animation = New Int32Animation()
animation3.From = 0
animation3.To = 1000
animation3.By = 1
animation3.Duration = New Duration(TimeSpan.FromSeconds(4.0))
animation3.AutoReverse = True
animation3.RepeatBehavior = RepeatBehavior.Forever
Dim storyboard As Storyboard = New Storyboard()
storyboard.SetTargetName(animation1, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation1, New PropertyPath(GrayScaleExtendedCommandBitmapEffect.RedFactorProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation1)
storyboard.SetTargetName(animation2, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation2, New PropertyPath(GrayScaleExtendedCommandBitmapEffect.GreenFactorProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation2)
storyboard.SetTargetName(animation3, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation3, New PropertyPath(GrayScaleExtendedCommandBitmapEffect.BlueFactorProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation3)
storyboard.Begin(element)
End Sub |
C# | Copy Code |
---|
public void GrayScaleExtendedCommandBitmapEffectExample(FrameworkElement element) { // Initialize Effect GrayScaleExtendedCommandBitmapEffect effect = new GrayScaleExtendedCommandBitmapEffect(); effect.RedFactor = 300; effect.GreenFactor = 590; effect.BlueFactor = 110; element.BitmapEffect = effect; // Initialize Animations Int32Animation animation1 = new Int32Animation(); animation1.From = 0; animation1.To = 1000; animation1.By = 1; animation1.Duration = new Duration(TimeSpan.FromSeconds(2.0)); animation1.AutoReverse = true; animation1.RepeatBehavior = RepeatBehavior.Forever; Int32Animation animation2 = new Int32Animation(); animation2.From = 0; animation2.To = 1000; animation2.By = 1; animation2.Duration = new Duration(TimeSpan.FromSeconds(3.0)); animation2.AutoReverse = true; animation2.RepeatBehavior = RepeatBehavior.Forever; Int32Animation animation3 = new Int32Animation(); animation3.From = 0; animation3.To = 1000; animation3.By = 1; animation3.Duration = new Duration(TimeSpan.FromSeconds(4.0)); animation3.AutoReverse = true; animation3.RepeatBehavior = RepeatBehavior.Forever; // Initialize and run Storyboard Storyboard storyboard = new Storyboard(); Storyboard.SetTargetName(animation1, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation1, new PropertyPath(GrayScaleExtendedCommandBitmapEffect.RedFactorProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation1); Storyboard.SetTargetName(animation2, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation2, new PropertyPath(GrayScaleExtendedCommandBitmapEffect.GreenFactorProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation2); Storyboard.SetTargetName(animation3, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation3, new PropertyPath(GrayScaleExtendedCommandBitmapEffect.BlueFactorProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation3); storyboard.Begin(element); } |
XAML | Copy 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:GrayScaleExtendedCommandBitmapEffect x:Name="MyBitmapEffect" /> </Image.BitmapEffect> <Image.Triggers> <EventTrigger RoutedEvent="Image.Loaded"> <BeginStoryboard> <Storyboard> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="RedFactor" From="0" To="1000" Duration="0:0:2" RepeatBehavior="Forever" AutoReverse="True" /> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="GreenFactor" From="0" To="1000" Duration="0:0:3" RepeatBehavior="Forever" AutoReverse="True" /> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="BlueFactor" From="0" To="1000" Duration="0:0:4" RepeatBehavior="Forever" AutoReverse="True" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Image.Triggers> </Image> </Grid> </Page> |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Vista, and Windows Server 2003
See Also