←Select platform

AutoDisposeImage Property

Summary

Indicates whether to auto dispose the old image when a new image is set into this RasterPictureBox.

Syntax
C#
VB
C++
public bool AutoDisposeImage { get; set; } 
Public Property AutoDisposeImage() As Boolean 
   Get 
   Set 
public:  
   property bool AutoDisposeImage 
   { 
      bool get() 
      void set(bool value) 
   } 

Property Value

true if the image 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 image 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; 
using Leadtools.Controls; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
using LeadtoolsExamples.Common; 
 
public void RasterPictureBox_AutoDisposeImage() 
{ 
   RasterPictureBox viewer = new RasterPictureBox(); 
   // 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 viewer is set to true 
   viewer.AutoDisposeImage = 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 AutoDisposeImage 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 AutoDisposeImage property of the viewer is set to false 
   viewer.AutoDisposeImage = 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 AutoDisposeImage 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(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Controls 
Imports Leadtools.Codecs 
Imports Leadtools.Drawing 
 
Public Sub RasterPictureBox_AutoDisposeImage(ByVal viewer As RasterPictureBox) 
   ' Load two image2 
   Dim codecs As RasterCodecs = 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 viewer is set to true 
   viewer.AutoDisposeImage = 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 AutoDisposeImage 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 null (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 AutoDisposeImage property of the viewer is set to false 
   viewer.AutoDisposeImage = 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 AutoDisposeImage 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 null (will not dispose the second image) 
   viewer.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 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Controls Assembly