Leadtools.Windows.Media.Effects Namespace : WindowLevelEffect Class |
public class WindowLevelEffect : System.Windows.Media.Effects.ShaderEffect, System.Windows.Media.Animation.IAnimatable
'Declaration Public Class WindowLevelEffect Inherits System.Windows.Media.Effects.ShaderEffect Implements System.Windows.Media.Animation.IAnimatable
'Usage Dim instance As WindowLevelEffect
public ref class WindowLevelEffect : public System.Windows.Media.Effects.ShaderEffect, System.Windows.Media.Animation.IAnimatable
Provides "on demand" window-leveling as an effect and does not alter the image data.
To learn more about window-leveling, refer to RasterImage.WindowLevel, RasterImage.WindowLevelExt, WindowLevelCommand and Leadtools.ImageProcessing.Core.WindowLevelExtCommand.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.Windows.Controls Imports Leadtools.Windows.Media Imports Leadtools.Windows.Media.Effects Class WindowLevelEffectExampleWindow Inherits Window Public Sub New() Dim sp As New StackPanel() Content = sp Dim theViewer As New RasterImageViewer() theViewer.HorizontalAlignment = HorizontalAlignment.Center theViewer.VerticalAlignment = VerticalAlignment.Top theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left theViewer.ImageVerticalAlignment = VerticalAlignment.Top sp.Children.Add(theViewer) ' Load an image into the viewer Using codecs As New RasterCodecs() theViewer.Image = codecs.Load(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Image3.dcm")) End Using ' Create the sliders Dim tb As New TextBlock() tb.HorizontalAlignment = HorizontalAlignment.Center tb.Text = "Window Width:" sp.Children.Add(tb) Dim windowWidthSlider As New Slider() windowWidthSlider.Minimum = 0.0 windowWidthSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1) windowWidthSlider.Width = 400 windowWidthSlider.Orientation = Orientation.Horizontal windowWidthSlider.IsSnapToTickEnabled = True windowWidthSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight windowWidthSlider.TickFrequency = 0.1 windowWidthSlider.AutoToolTipPrecision = 2 windowWidthSlider.AutoToolTipPlacement = System.Windows.Controls.Primitives.AutoToolTipPlacement.BottomRight sp.Children.Add(windowWidthSlider) tb = New TextBlock() tb.HorizontalAlignment = HorizontalAlignment.Center tb.Text = "Window Center:" sp.Children.Add(tb) Dim windowCenterSlider As New Slider() windowCenterSlider.Minimum = 0.0 windowCenterSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1) windowCenterSlider.Width = 400 windowCenterSlider.Orientation = Orientation.Horizontal windowCenterSlider.IsSnapToTickEnabled = True windowCenterSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight windowCenterSlider.TickFrequency = 0.1 windowCenterSlider.AutoToolTipPrecision = 2 windowCenterSlider.AutoToolTipPlacement = System.Windows.Controls.Primitives.AutoToolTipPlacement.BottomRight sp.Children.Add(windowCenterSlider) ' Setup the effect Dim effect As New WindowLevelEffect() ' Set the texture effect.FillGrayTexture(theViewer.Image) effect.Start = Colors.Black effect.End = Colors.White effect.CurveType = CurveType.Linear effect.Factor = 0.0 effect.WindowWidth = Math.Pow(2, theViewer.Image.MaxValue - theViewer.Image.MinValue) effect.WindowCenter = effect.WindowWidth / 2 theViewer.ImageEffect = effect ' Bind the properties Dim bind As New Binding() bind.Source = effect bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged bind.Path = New PropertyPath("WindowWidth") windowWidthSlider.SetBinding(Slider.ValueProperty, bind) bind = New Binding() bind.Source = effect bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged bind.Path = New PropertyPath("WindowCenter") windowCenterSlider.SetBinding(Slider.ValueProperty, bind) Title = "Using WindowLevelEffect" 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 WindowLevelEffectExampleWindow : Window { public WindowLevelEffectExampleWindow() { StackPanel sp = new StackPanel(); Content = sp; RasterImageViewer theViewer = new RasterImageViewer(); theViewer.HorizontalAlignment = HorizontalAlignment.Center; theViewer.VerticalAlignment = VerticalAlignment.Top; theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left; theViewer.ImageVerticalAlignment = VerticalAlignment.Top; sp.Children.Add(theViewer); // Load an image into the viewer using(RasterCodecs codecs = new RasterCodecs()) { theViewer.Image = codecs.Load(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Image3.dcm")); } // Create the sliders TextBlock tb = new TextBlock(); tb.HorizontalAlignment = HorizontalAlignment.Center; tb.Text = "Window Width:"; sp.Children.Add(tb); Slider windowWidthSlider = new Slider(); windowWidthSlider.Minimum = 0.0; windowWidthSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1); windowWidthSlider.Width = 400; windowWidthSlider.Orientation = Orientation.Horizontal; windowWidthSlider.IsSnapToTickEnabled = true; windowWidthSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight; windowWidthSlider.TickFrequency = 0.1; windowWidthSlider.AutoToolTipPrecision = 2; windowWidthSlider.AutoToolTipPlacement = System.Windows.Controls.Primitives.AutoToolTipPlacement.BottomRight; sp.Children.Add(windowWidthSlider); tb = new TextBlock(); tb.HorizontalAlignment = HorizontalAlignment.Center; tb.Text = "Window Center:"; sp.Children.Add(tb); Slider windowCenterSlider = new Slider(); windowCenterSlider.Minimum = 0.0; windowCenterSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1); windowCenterSlider.Width = 400; windowCenterSlider.Orientation = Orientation.Horizontal; windowCenterSlider.IsSnapToTickEnabled = true; windowCenterSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight; windowCenterSlider.TickFrequency = 0.1; windowCenterSlider.AutoToolTipPrecision = 2; windowCenterSlider.AutoToolTipPlacement = System.Windows.Controls.Primitives.AutoToolTipPlacement.BottomRight; sp.Children.Add(windowCenterSlider); // Setup the effect WindowLevelEffect effect = new WindowLevelEffect(); // Set the texture effect.FillGrayTexture(theViewer.Image); effect.Start = Colors.Black; effect.End = Colors.White; effect.CurveType = CurveType.Linear; effect.Factor = 0.0; effect.WindowWidth = Math.Pow(2, theViewer.Image.MaxValue - theViewer.Image.MinValue); effect.WindowCenter = effect.WindowWidth / 2; theViewer.ImageEffect = effect; // Bind the properties Binding bind = new Binding(); bind.Source = effect; bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; bind.Path = new PropertyPath("WindowWidth"); windowWidthSlider.SetBinding(Slider.ValueProperty, bind); bind = new Binding(); bind.Source = effect; bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; bind.Path = new PropertyPath("WindowCenter"); windowCenterSlider.SetBinding(Slider.ValueProperty, bind); Title = "Using WindowLevelEffect"; } } 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 WindowLevelEffectExampleWindow : UserControl { public WindowLevelEffectExampleWindow() { StackPanel sp = new StackPanel(); Content = sp; RasterImageViewer theViewer = new RasterImageViewer(); theViewer.HorizontalAlignment = HorizontalAlignment.Center; theViewer.VerticalAlignment = VerticalAlignment.Top; theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left; theViewer.ImageVerticalAlignment = VerticalAlignment.Top; sp.Children.Add(theViewer); // Load an image into the viewer //using(RasterCodecs codecs = new RasterCodecs()) { RasterCodecs codecs = new RasterCodecs(); theViewer.Image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "Image3.dcm"); } // Create the sliders TextBlock tb = new TextBlock(); tb.HorizontalAlignment = HorizontalAlignment.Center; tb.Text = "Window Width:"; sp.Children.Add(tb); Slider windowWidthSlider = new Slider(); windowWidthSlider.Minimum = 0.0; windowWidthSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1); windowWidthSlider.Width = 400; windowWidthSlider.Orientation = Orientation.Horizontal; sp.Children.Add(windowWidthSlider); tb = new TextBlock(); tb.HorizontalAlignment = HorizontalAlignment.Center; tb.Text = "Window Center:"; sp.Children.Add(tb); Slider windowCenterSlider = new Slider(); windowCenterSlider.Minimum = 0.0; windowCenterSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1); windowCenterSlider.Width = 400; windowCenterSlider.Orientation = Orientation.Horizontal; sp.Children.Add(windowCenterSlider); // Setup the effect WindowLevelEffect effect = new WindowLevelEffect(); // Set the texture effect.FillGrayTexture(theViewer.Image); effect.Start = Colors.Black; effect.End = Colors.White; effect.CurveType = CurveType.Linear; effect.Factor = 0.0; effect.WindowWidth = Math.Pow(2, theViewer.Image.MaxValue - theViewer.Image.MinValue); effect.WindowCenter = effect.WindowWidth / 2; theViewer.ImageEffect = effect; // Bind the properties Binding bind = new Binding(); bind.Source = effect; bind.UpdateSourceTrigger = UpdateSourceTrigger.Default; bind.Path = new PropertyPath("WindowWidth"); windowWidthSlider.SetBinding(Slider.ValueProperty, bind); bind = new Binding(); bind.Source = effect; bind.UpdateSourceTrigger = UpdateSourceTrigger.Default; bind.Path = new PropertyPath("WindowCenter"); windowCenterSlider.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 WindowLevelEffectExampleWindow Inherits UserControl Public Sub New() Dim sp As New StackPanel() Content = sp Dim theViewer As New RasterImageViewer() theViewer.HorizontalAlignment = HorizontalAlignment.Center theViewer.VerticalAlignment = VerticalAlignment.Top theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left theViewer.ImageVerticalAlignment = VerticalAlignment.Top sp.Children.Add(theViewer) ' Load an image into the viewer Dim codecs As New RasterCodecs() theViewer.Image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "Image3.dcm") ' Create the sliders Dim tb As New TextBlock() tb.HorizontalAlignment = HorizontalAlignment.Center tb.Text = "Window Width:" sp.Children.Add(tb) Dim windowWidthSlider As New Slider() windowWidthSlider.Minimum = 0.0 windowWidthSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1) windowWidthSlider.Width = 400 windowWidthSlider.Orientation = Orientation.Horizontal sp.Children.Add(windowWidthSlider) tb = New TextBlock() tb.HorizontalAlignment = HorizontalAlignment.Center tb.Text = "Window Center:" sp.Children.Add(tb) Dim windowCenterSlider As New Slider() windowCenterSlider.Minimum = 0.0 windowCenterSlider.Maximum = Math.Pow(2, theViewer.Image.BitsPerPixel - 1) windowCenterSlider.Width = 400 windowCenterSlider.Orientation = Orientation.Horizontal sp.Children.Add(windowCenterSlider) ' Setup the effect Dim effect As New WindowLevelEffect() ' Set the texture effect.FillGrayTexture(theViewer.Image) effect.Start = Colors.Black effect.End = Colors.White effect.CurveType = CurveType.Linear effect.Factor = 0.0 effect.WindowWidth = Math.Pow(2, theViewer.Image.MaxValue - theViewer.Image.MinValue) effect.WindowCenter = effect.WindowWidth / 2 theViewer.ImageEffect = effect ' Bind the properties Dim bind As New Binding() bind.Source = effect bind.UpdateSourceTrigger = UpdateSourceTrigger.Default bind.Path = New PropertyPath("WindowWidth") windowWidthSlider.SetBinding(Slider.ValueProperty, bind) bind = New Binding() bind.Source = effect bind.UpdateSourceTrigger = UpdateSourceTrigger.Default bind.Path = New PropertyPath("WindowCenter") windowCenterSlider.SetBinding(Slider.ValueProperty, bind) End Sub End Class