←Select platform

AutoDisposeImages Property

Summary

Gets or sets a value indicating whether to auto dispose the old image when a new image is set into this RasterImageBox.

Syntax

C#
VB
C++
public bool AutoDisposeImages { get; set; } 
  
Public Property AutoDisposeImages As Boolean 
public: 
property bool AutoDisposeImages { 
   bool get(); 
   void set (    bool ); 
} 

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

C#
VB
using Leadtools.Help; 
using Leadtools.Windows.Controls; 
using Leadtools.ImageProcessing; 
using Leadtools.Codecs; 
 
public void RasterImageBox_AutoDisposeImages(RasterImageBox imageBox) 
{ 
   // 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"); 
 
   RasterImage image1 = codecs.Load(file1); 
   RasterImage image2 = codecs.Load(file2); 
 
   // Make sure the AutoDisposeImage property of the image box is set to true  
   imageBox.AutoDisposeImages = true; 
 
   // Set the first image into the image box  
   imageBox.Image = image1; 
 
   // Now set the second image into the image box (this disposes the first image since the AutoDisposeImage property is true)  
   imageBox.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)  
   imageBox.Image = null; 
 
   // Now re-load the two images  
   image1 = codecs.Load(file1); 
   image2 = codecs.Load(file2); 
 
   // Make sure the AutoDisposeImage property of the image box is set to false  
   imageBox.AutoDisposeImages = false; 
 
   // Set the first image into the image box  
   imageBox.Image = image1; 
 
   // Now set the second image into the image box (this will not disposes the first image since the AutoDisposeImage property is false)  
   imageBox.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)  
   imageBox.Image = null; 
 
   // We should now dispose the two images manually  
   image1.Dispose(); 
   image2.Dispose(); 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools.Windows.Controls 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Codecs 
Imports Leadtools 
 
Public Sub RasterImageBox_AutoDisposeImages(ByVal imageBox As RasterImageBox) 
   ' 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") 
 
   Dim image1 As RasterImage = codecs.Load(file1) 
   Dim image2 As RasterImage = codecs.Load(file2) 
 
   ' Make sure the AutoDisposeImage property of the image box is set to true  
   imageBox.AutoDisposeImages = True 
 
   ' Set the first image into the image box  
   imageBox.Image = image1 
 
   ' Now set the second image into the image box (this disposes the first image since the AutoDisposeImage property is true)  
   imageBox.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)  
   imageBox.Image = Nothing 
 
   ' Now re-load the two images  
   image1 = codecs.Load(file1) 
   image2 = codecs.Load(file2) 
 
   ' Make sure the AutoDisposeImage property of the image box is set to false  
   imageBox.AutoDisposeImages = False 
 
   ' Set the first image into the image box  
   imageBox.Image = image1 
 
   ' Now set the second image into the image box (this will not disposes the first image since the AutoDisposeImage property is false)  
   imageBox.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)  
   imageBox.Image = Nothing 
 
   ' We should now dispose the two images manually  
   image1.Dispose() 
   image2.Dispose() 
   codecs.Dispose() 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Windows.Controls Assembly