LEADTOOLS WPF and Silverlight (Leadtools.Windows.Media.Effects assembly)

DesaturateEffect Class

Show in webframe
Example 





Members 
Increase or decrease the image saturation based on the given parameter.
Object Model
Syntax
'Declaration
 
Public Class DesaturateEffect 
   Inherits System.Windows.Media.Effects.ShaderEffect
   Implements System.Windows.Media.Animation.IAnimatable 
'Usage
 
Dim instance As DesaturateEffect

            

            
Remarks

Negative values decrease the saturation of colors. Positive values increase the saturation. The saturation level is increased or decreased by a percentage of its present saturation level. For example, an increase of 20 of the current saturation level "L" will raise the new saturation level "L1" to a value L + 0.20 * L. Likewise, increasing the saturation level 100 doubles the saturation level ( L1 = L + 1.0 * L). Decreasing the saturation level 100 will set the new saturation level to 0. This process is carried out for every pixel.

Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Controls
Imports Leadtools.Windows.Media
Imports Leadtools.Windows.Media.Effects

Class DesaturateEffectExampleWindow
   Inherits Window
   Public Sub New()
      Dim sp As New StackPanel()
      Content = sp
      Dim theViewer As New ImageViewer()

      theViewer.HorizontalAlignment = HorizontalAlignment.Center
      theViewer.VerticalAlignment = VerticalAlignment.Top
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top

      sp.Children.Add(theViewer)

      ' Create the sliders
      Dim tb As New TextBlock()
      tb.HorizontalAlignment = HorizontalAlignment.Center
      tb.Text = "Saturation:"
      sp.Children.Add(tb)

      Dim theSlider As New Slider()
      theSlider.Minimum = 0.0
      theSlider.Maximum = 1.0
      theSlider.Width = 400
      theSlider.Orientation = Orientation.Horizontal
      theSlider.IsSnapToTickEnabled = True
      theSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight
      theSlider.TickFrequency = 0.1
      theSlider.AutoToolTipPrecision = 2
      theSlider.AutoToolTipPlacement = System.Windows.Controls.Primitives.AutoToolTipPlacement.BottomRight

      sp.Children.Add(theSlider)

      ' Load an image into the viewer
      theViewer.Source = New BitmapImage(New Uri(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg")))

      ' Create the effect
      Dim effect As New DesaturateEffect()
      effect.Saturation = 0.5
      theViewer.ImageEffect = effect

      ' Bind the properties
      Dim bind As New Binding()
      bind.Source = effect
      bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
      bind.Path = New PropertyPath("Saturation")
      theSlider.SetBinding(Slider.ValueProperty, bind)

      Title = "Using DesaturateEffect"
   End Sub
End Class

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Controls;
using Leadtools.Windows.Media;
using Leadtools.Windows.Media.Effects;

class DesaturateEffectExampleWindow : Window
{
   public DesaturateEffectExampleWindow()
   {
      StackPanel sp = new StackPanel();
      Content = sp;
      ImageViewer theViewer = new ImageViewer();

      theViewer.HorizontalAlignment = HorizontalAlignment.Center;
      theViewer.VerticalAlignment = VerticalAlignment.Top;
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left;
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top;

      sp.Children.Add(theViewer);

      // Create the sliders
      TextBlock tb = new TextBlock();
      tb.HorizontalAlignment = HorizontalAlignment.Center;
      tb.Text = "Saturation:";
      sp.Children.Add(tb);

      Slider theSlider = new Slider();
      theSlider.Minimum = 0.0;
      theSlider.Maximum = 1.0;
      theSlider.Width = 400;
      theSlider.Orientation = Orientation.Horizontal;
      theSlider.IsSnapToTickEnabled = true;
      theSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight;
      theSlider.TickFrequency = 0.1;
      theSlider.AutoToolTipPrecision = 2;
      theSlider.AutoToolTipPlacement = System.Windows.Controls.Primitives.AutoToolTipPlacement.BottomRight;

      sp.Children.Add(theSlider);

      // Load an image into the viewer
      theViewer.Source = new BitmapImage(new Uri(System.IO.Path.Combine(LEAD_VARS.ImagesDir,"Cannon.jpg")));

      // Create the effect
      DesaturateEffect effect = new DesaturateEffect();
      effect.Saturation = 0.5;
      theViewer.ImageEffect = effect;

      // Bind the properties
      Binding bind = new Binding();
      bind.Source = effect;
      bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
      bind.Path = new PropertyPath("Saturation");
      theSlider.SetBinding(Slider.ValueProperty, bind);

      Title = "Using DesaturateEffect";
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Media;
using Leadtools.Windows.Media.Effects;
using Leadtools.Windows.Controls;

class DesaturateEffectExampleWindow : UserControl
{
   public DesaturateEffectExampleWindow()
   {
      StackPanel sp = new StackPanel();
      Content = sp;
      ImageViewer theViewer = new ImageViewer();

      theViewer.HorizontalAlignment = HorizontalAlignment.Center;
      theViewer.VerticalAlignment = VerticalAlignment.Top;
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left;
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top;

      sp.Children.Add(theViewer);

      // Create the sliders
      TextBlock tb = new TextBlock();
      tb.HorizontalAlignment = HorizontalAlignment.Center;
      tb.Text = "Saturation:";
      sp.Children.Add(tb);

      Slider theSlider = new Slider();
      theSlider.Minimum = 0.0;
      theSlider.Maximum = 1.0;
      theSlider.Width = 400;
      theSlider.Orientation = Orientation.Horizontal;

      sp.Children.Add(theSlider);

      // Load an image into the viewer
      theViewer.Source = new BitmapImage(new Uri(LeadtoolsExamples.Common.ImagesPath.Path + "Cannon.jpg"));

      // Create the effect
      DesaturateEffect effect = new DesaturateEffect();
      effect.Saturation = 0.5;
      theViewer.ImageEffect = effect;

      // Bind the properties
      Binding bind = new Binding();
      bind.Source = effect;
      bind.UpdateSourceTrigger = UpdateSourceTrigger.Default;
      bind.Path = new PropertyPath("Saturation");
      theSlider.SetBinding(Slider.ValueProperty, bind);
   }
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Controls
Imports Leadtools.Windows.Media
Imports Leadtools.Windows.Media.Effects

Class DesaturateEffectExampleWindow
   Inherits UserControl
   Public Sub New()
      Dim sp As New StackPanel()
      Content = sp
      Dim theViewer As New ImageViewer()

      theViewer.HorizontalAlignment = HorizontalAlignment.Center
      theViewer.VerticalAlignment = VerticalAlignment.Top
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top

      sp.Children.Add(theViewer)

      ' Create the sliders
      Dim tb As New TextBlock()
      tb.HorizontalAlignment = HorizontalAlignment.Center
      tb.Text = "Saturation:"
      sp.Children.Add(tb)

      Dim theSlider As New Slider()
      theSlider.Minimum = 0.0
      theSlider.Maximum = 1.0
      theSlider.Width = 400
      theSlider.Orientation = Orientation.Horizontal

      sp.Children.Add(theSlider)

      ' Load an image into the viewer
      theViewer.Source = New BitmapImage(New Uri(LeadtoolsExamples.Common.ImagesPath.Path + "Cannon.jpg"))

      ' Create the effect
      Dim effect As New DesaturateEffect()
      effect.Saturation = 0.5
      theViewer.ImageEffect = effect

      ' Bind the properties
      Dim bind As New Binding()
      bind.Source = effect
      bind.UpdateSourceTrigger = UpdateSourceTrigger.Default
      bind.Path = New PropertyPath("Saturation")
      theSlider.SetBinding(Slider.ValueProperty, bind)

   End Sub
End Class
<Window x:Class="DesaturateEffectExample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:leadControls="clr-namespace:Leadtools.Windows.Controls;assembly=Leadtools.Windows.Controls"
xmlns:leadEffects="clr-namespace:Leadtools.Windows.Media.Effects;assembly=Leadtools.Windows.Media.Effects"
Height="600" Width="800">
   <StackPanel>
      <leadControls:ImageViewer
            HorizontalAlignment="Center" VerticalAlignment="Top"
            ImageHorizontalAlignment="Left" ImageVerticalAlignment="Top"
            Source="file:///c:\users\Public\Documents\LEADTOOLS Images\cannon.jpg">
         <leadControls:ImageViewer.ImageEffect>
            <leadEffects:DesaturateEffect
               Saturation="{Binding Value, ElementName=SaturationSlider, UpdateSourceTrigger=PropertyChanged}">
            </leadEffects:DesaturateEffect>
         </leadControls:ImageViewer.ImageEffect>
      </leadControls:ImageViewer>
      <TextBlock HorizontalAlignment="Center" Text="Saturation:"/>
      <Slider x:Name="SaturationSlider"
            Minimum="0.0" Maximum="1.0" TickFrequency="0.1"
            Width="400" Orientation="Horizontal"
            IsSnapToTickEnabled="True" TickPlacement="BottomRight"
            AutoToolTipPrecision="2" AutoToolTipPlacement="BottomRight">
      </Slider>
   </StackPanel>
</Window>
Requirements

Target Platforms

See Also

Reference

DesaturateEffect Members
Leadtools.Windows.Media.Effects Namespace
Introduction

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.