|
Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.4.3
|
| Leadtools.Controls Assembly > Leadtools.Controls Namespace > RasterPictureBox Class : AutoDisposeImage Property |
This sample loads two images to demonstrate how the AutoDisposeImage property affects whether the item image remains usable.
Copy Code
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
using Leadtools; using Leadtools.Controls; using Leadtools.Codecs; using Leadtools.Drawing; 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"; }