←Select platform

Release Method

Summary

Releases memory locked with Access back to the system.

Syntax
C#
C++/CLI
Java
Python
public void Release() 
public void release(); 
public: 
void Release();  
def Release(self): 
Remarks

If the image data of this RasterImage object is stored in a global Windows handle, then use the Release method along with Access to control the access to image data in memory. Any attempt to access the image data after calling Release will result in an application error.

To make the most of available system resources, you should only keep a RasterImage object locked when you need to access the image data. Call Release to unlock the image data for more efficient use of system memory resources.

You should call this method whenever the image is not used, so that Windows can manage its memory properly.

If the image data of this RasterImage is not stored in a global Windows handle, then this method will do nothing and calling it will not have any effect on the RasterImage.

Use IsGlobalMemory to determine if the image data of this RasterImage is stored in a global Windows handle or not.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Dicom; 
using Leadtools.Drawing; 
using Leadtools.Controls; 
using Leadtools.Svg; 
 
 
public void GetRowTest() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")); 
 
   byte[] row1 = new byte[image.BytesPerLine]; 
   byte[] row2 = new byte[image.BytesPerLine]; 
 
   image.Access(); 
   for (int y = 0; y < image.Height / 2; y++) 
   { 
      image.GetRow(y, row1, 0, row1.Length); 
      image.GetRow(image.Height - y - 1, row2, 0, row2.Length); 
 
      image.SetRow(y, row2, 0, row2.Length); 
      image.SetRow(image.Height - y - 1, row1, 0, row1.Length); 
   } 
   image.Release(); 
 
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_getrow.BMP"), RasterImageFormat.Bmp, 0); 
 
   image.Dispose(); 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.ArrayList; 
import java.util.List; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.core.*; 
import leadtools.svg.*; 
import leadtools.imageprocessing.CloneCommand; 
import leadtools.imageprocessing.FillCommand; 
import leadtools.imageprocessing.FlipCommand; 
import leadtools.imageprocessing.GrayscaleCommand; 
import leadtools.imageprocessing.color.InvertCommand; 
import leadtools.imageprocessing.color.PosterizeCommand; 
 
 
public void getRowExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterCodecs codecs = new RasterCodecs(); 
   String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_getrow.BMP"); 
   RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "IMAGE1.CMP")); 
   byte[] row1 = new byte[image.getBytesPerLine()]; 
   byte[] row2 = new byte[image.getBytesPerLine()]; 
 
   image.access(); 
 
   for (int y = 0; y < image.getHeight() / 2; y++) { 
      image.getRow(y, row1, 0, row1.length); 
      image.getRow(image.getHeight() - y - 1, row2, 0, row2.length); 
 
      image.setRow(y, row2, 0, row2.length); 
      image.setRow(image.getHeight() - y - 1, row1, 0, row1.length); 
   } 
 
   image.release(); 
 
   // Save it 
   codecs.save(image, destFileName, RasterImageFormat.BMP, 0); 
 
   // Clean up 
   image.dispose(); 
   codecs.dispose(); 
 
   assertTrue("file unsuccessfully saved to " + destFileName, (new File(destFileName)).exists()); 
   System.out.printf("File saved successfully to %s%n", destFileName); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.