LEADTOOLS WPF and Silverlight (Leadtools.Windows.Controls assembly)
LEAD Technologies, Inc

AutoDisposeImages Property (RasterImageViewer)

Example 





Gets or sets a value indicating whether to auto dispose the old image when a new image is set into this RasterImageViewer. .NET support Silverlight support
Syntax
public bool AutoDisposeImages {get; set;}
'Declaration
 
Public Property AutoDisposeImages As Boolean
'Usage
 
Dim instance As RasterImageViewer
Dim value As Boolean
 
instance.AutoDisposeImages = value
 
value = instance.AutoDisposeImages
public bool AutoDisposeImages {get; set;}
 get_AutoDisposeImages();
set_AutoDisposeImages(value);
public:
property bool AutoDisposeImages {
   bool get();
   void set (    bool value);
}

Property Value

true if the Leadtools.RasterImage object in Image is automatically disposed when a new image is set; otherwise, false. Default value is true.
Remarks

By default, whenever you set a new Leadtools.RasterImage object into the Image property, the old image (if any) is disposed. Set the value of this property to false to prevent disposing of the old image.

Example
Copy CodeCopy Code  
Public Sub RasterImageViewer_AutoDisposeImages(ByVal viewer As RasterImageViewer)
      ' Load two image2 
      Dim codecs As New RasterCodecs()
      Dim file1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim file2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image2.cmp")
      AddHandler viewer.ImageChanged, AddressOf viewer_ImageChanged

      Dim image1 As RasterImage = codecs.Load(file1)
      Dim image2 As RasterImage = codecs.Load(file2)

      ' Make sure the AutoDisposeImages property of the viewer is set to true 
      viewer.AutoDisposeImages = True

      ' Set the first image into the viewer
      viewer.Image = image1

      ' Now set the second image into the viewer (this disposes the first image since the AutoDisposeImages property is true)
      viewer.Image = image2

      ' Try to access the first image, it generates a NullReferenceException exception since the image has been disposed 
      MessageBox.Show("Try to access the first image, it generates a NullReferenceException exception since the image has been disposed.")
      Try
         Dim width As Integer = image1.Width
         MessageBox.Show(String.Format("Width is {0} pixels", width))
      Catch ex As NullReferenceException
         MessageBox.Show(ex.Message)
      End Try

      ' Set the image to Nothing (will dispose the second image as well)
      viewer.Image = Nothing

      ' Now re-load the two images
      image1 = codecs.Load(file1)
      image2 = codecs.Load(file2)

      ' Make sure the AutoDisposeImages property of the viewer is set to false 
      viewer.AutoDisposeImages = False

      ' Set the first image into the viewer 
      viewer.Image = image1

      ' Now set the second image into the viewer (this will not disposes the first image since the AutoDisposeImages property is false) 
      viewer.Image = image2

      ' Try to access the first image, it should work fine this time 
      Try
         Dim width As Integer = image1.Width
         MessageBox.Show(String.Format("Width is {0} pixels", width))
      Catch ex As NullReferenceException
         MessageBox.Show(ex.Message)
      End Try

      ' Set the image to Nothing (will not dispose the second image) 
      viewer.Image = Nothing

      ' We should now dispose the two images manually
      image1.Dispose()
      image2.Dispose()
      codecs.Dispose()

      RemoveHandler viewer.ImageChanged, AddressOf viewer_ImageChanged
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void RasterImageViewer_AutoDisposeImages(RasterImageViewer viewer)
   {
      // Load two image2 
      RasterCodecs codecs = new RasterCodecs();
      string file1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
      string file2 = Path.Combine(LEAD_VARS.ImagesDir, "Image2.cmp");
      viewer.ImageChanged += new RoutedPropertyChangedEventHandler<RasterImage>(viewer_ImageChanged);

      RasterImage image1 = codecs.Load(file1);
      RasterImage image2 = codecs.Load(file2);

      // Make sure the AutoDisposeImages property of the viewer is set to true 
      viewer.AutoDisposeImages = true;

      // Set the first image into the viewer 
      viewer.Image = image1;

      // Now set the second image into the viewer (this disposes the first image since the AutoDisposeImages property is true) 
      viewer.Image = image2;

      // Try to access the first image, it generates a NullReferenceException exception since the image has been disposed 
      MessageBox.Show("Try to access the first image, it generates a NullReferenceException exception since the image has been disposed.");
      try
      {
         int width = image1.Width;
         MessageBox.Show(string.Format("Width is {0} pixels", width));
      }
      catch (NullReferenceException ex)
      {
         MessageBox.Show(ex.Message);
      }

      // Set the image to null (will dispose the second image as well) 
      viewer.Image = null;

      // Now re-load the two images 
      image1 = codecs.Load(file1);
      image2 = codecs.Load(file2);

      // Make sure the AutoDisposeImages property of the viewer is set to false 
      viewer.AutoDisposeImages = false;

      // Set the first image into the viewer 
      viewer.Image = image1;

      // Now set the second image into the viewer (this will not disposes the first image since the AutoDisposeImages property is false) 
      viewer.Image = image2;

      // Try to access the first image, it should work fine this time 
      try
      {
         int width = image1.Width;
         MessageBox.Show(string.Format("Width is {0} pixels", width));
      }
      catch (NullReferenceException ex)
      {
         MessageBox.Show(ex.Message);
      }

      // Set the image to null (will not dispose the second image) 
      viewer.Image = null;

      // We should now dispose the two images manually 
      image1.Dispose();
      image2.Dispose();
      codecs.Dispose();

      viewer.ImageChanged -= new RoutedPropertyChangedEventHandler<RasterImage>(viewer_ImageChanged);
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

RasterImageViewer Class
RasterImageViewer Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.