Shows the effect of using an enlarged halftone screen on each image
channel. The filter divides the image into rectangles and replaces
each rectangle with circles. Each channel has a separate grid of circles, and has its own angle setting.
The size of each circle is proportional to the brightness of the rectangle that it is replacing.
This method is available in LEADTOOLS
Document and Medical Imaging toolkits.
Syntax
XAML Property Element Usage | |
---|
ColorHalftoneCommandBitmapEffect ... |
Example
Visual Basic | Copy Code |
---|
Public Sub ColorHalftoneCommandBitmapEffectExample(ByVal element As FrameworkElement)
Dim effect As ColorHalftoneCommandBitmapEffect = New ColorHalftoneCommandBitmapEffect()
effect.MaximumRadius = 2
effect.CyanAngle = 10800
effect.MagentaAngle = 16200
effect.YellowAngle = 9000
effect.BlackAngle = 4500
element.BitmapEffect = effect
Dim animation1 As Int32Animation = New Int32Animation()
animation1.From = -36000
animation1.To = 36000
animation1.By = 1
animation1.Duration = New Duration(TimeSpan.FromSeconds(1.0))
animation1.AutoReverse = True
animation1.RepeatBehavior = RepeatBehavior.Forever
Dim animation2 As Int32Animation = New Int32Animation()
animation2.From = -36000
animation2.To = 36000
animation2.By = 1
animation2.Duration = New Duration(TimeSpan.FromSeconds(2.0))
animation2.AutoReverse = True
animation2.RepeatBehavior = RepeatBehavior.Forever
Dim animation3 As Int32Animation = New Int32Animation()
animation3.From = -36000
animation3.To = 36000
animation3.By = 1
animation3.Duration = New Duration(TimeSpan.FromSeconds(3.0))
animation3.AutoReverse = True
animation3.RepeatBehavior = RepeatBehavior.Forever
Dim animation4 As Int32Animation = New Int32Animation()
animation4.From = -36000
animation4.To = 36000
animation4.By = 1
animation4.Duration = New Duration(TimeSpan.FromSeconds(4.0))
animation4.AutoReverse = True
animation4.RepeatBehavior = RepeatBehavior.Forever
Dim animation5 As Int32Animation = New Int32Animation()
animation5.From = 5
animation5.To = 20
animation5.By = 1
animation5.Duration = New Duration(TimeSpan.FromSeconds(5.0))
animation5.AutoReverse = True
animation5.RepeatBehavior = RepeatBehavior.Forever
Dim storyboard As Storyboard = New Storyboard()
storyboard.SetTargetName(animation1, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation1, New PropertyPath(ColorHalftoneCommandBitmapEffect.BlackAngleProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation1)
storyboard.SetTargetName(animation2, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation2, New PropertyPath(ColorHalftoneCommandBitmapEffect.CyanAngleProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation2)
storyboard.SetTargetName(animation3, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation3, New PropertyPath(ColorHalftoneCommandBitmapEffect.MagentaAngleProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation3)
storyboard.SetTargetName(animation4, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation4, New PropertyPath(ColorHalftoneCommandBitmapEffect.YellowAngleProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation4)
storyboard.SetTargetName(animation5, "AnimatedBitmapEffect")
storyboard.SetTargetProperty(animation5, New PropertyPath(ColorHalftoneCommandBitmapEffect.MaximumRadiusProperty))
element.RegisterName("AnimatedBitmapEffect", effect)
storyboard.Children.Add(animation5)
storyboard.Begin(element)
End Sub |
C# | Copy Code |
---|
public void ColorHalftoneCommandBitmapEffectExample(FrameworkElement element) { // Initialize Effect ColorHalftoneCommandBitmapEffect effect = new ColorHalftoneCommandBitmapEffect(); effect.MaximumRadius = 2; effect.CyanAngle = 10800; effect.MagentaAngle = 16200; effect.YellowAngle = 9000; effect.BlackAngle = 4500; element.BitmapEffect = effect; // Initialize Animations Int32Animation animation1 = new Int32Animation(); animation1.From = -36000; animation1.To = 36000; animation1.By = 1; animation1.Duration = new Duration(TimeSpan.FromSeconds(1.0)); animation1.AutoReverse = true; animation1.RepeatBehavior = RepeatBehavior.Forever; Int32Animation animation2 = new Int32Animation(); animation2.From = -36000; animation2.To = 36000; animation2.By = 1; animation2.Duration = new Duration(TimeSpan.FromSeconds(2.0)); animation2.AutoReverse = true; animation2.RepeatBehavior = RepeatBehavior.Forever; Int32Animation animation3 = new Int32Animation(); animation3.From = -36000; animation3.To = 36000; animation3.By = 1; animation3.Duration = new Duration(TimeSpan.FromSeconds(3.0)); animation3.AutoReverse = true; animation3.RepeatBehavior = RepeatBehavior.Forever; Int32Animation animation4 = new Int32Animation(); animation4.From = -36000; animation4.To = 36000; animation4.By = 1; animation4.Duration = new Duration(TimeSpan.FromSeconds(4.0)); animation4.AutoReverse = true; animation4.RepeatBehavior = RepeatBehavior.Forever; Int32Animation animation5 = new Int32Animation(); animation5.From = 5; animation5.To = 20; animation5.By = 1; animation5.Duration = new Duration(TimeSpan.FromSeconds(5.0)); animation5.AutoReverse = true; animation5.RepeatBehavior = RepeatBehavior.Forever; // Initialize and run Storyboard Storyboard storyboard = new Storyboard(); Storyboard.SetTargetName(animation1, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation1, new PropertyPath(ColorHalftoneCommandBitmapEffect.BlackAngleProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation1); Storyboard.SetTargetName(animation2, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation2, new PropertyPath(ColorHalftoneCommandBitmapEffect.CyanAngleProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation2); Storyboard.SetTargetName(animation3, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation3, new PropertyPath(ColorHalftoneCommandBitmapEffect.MagentaAngleProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation3); Storyboard.SetTargetName(animation4, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation4, new PropertyPath(ColorHalftoneCommandBitmapEffect.YellowAngleProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation4); Storyboard.SetTargetName(animation5, "AnimatedBitmapEffect"); Storyboard.SetTargetProperty(animation5, new PropertyPath(ColorHalftoneCommandBitmapEffect.MaximumRadiusProperty)); element.RegisterName("AnimatedBitmapEffect", effect); storyboard.Children.Add(animation5); 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.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:ColorHalftoneCommandBitmapEffect x:Name="MyBitmapEffect" /> </Image.BitmapEffect> <Image.Triggers> <EventTrigger RoutedEvent="Image.Loaded"> <BeginStoryboard> <Storyboard> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="BlackAngle" From="-36000" To="36000" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True" /> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="CyanAngle" From="-36000" To="36000" Duration="0:0:2" RepeatBehavior="Forever" AutoReverse="True" /> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="MagentaAngle" From="-36000" To="36000" Duration="0:0:3" RepeatBehavior="Forever" AutoReverse="True" /> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="YellowAngle" From="-36000" To="36000" Duration="0:0:4" RepeatBehavior="Forever" AutoReverse="True" /> <Int32Animation Storyboard.TargetName="MyBitmapEffect" Storyboard.TargetProperty="MaximumRadius" From="5" To="20" Duration="0:0:5" 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