Releases memory locked with AccessData back to the system.
- (BOOL)releaseData:(NSError **)error
If the image data of this RasterImage object is stored in a global Windows handle, then use the ReleaseData method along with AccessData to control the access to image data in memory. Any attempt to access the image data after calling ReleaseData 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 ReleaseData 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.
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);
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document