←Select platform

GetData Method

Summary
Returns an array of Byte that represents the information that describes this RasterRegion.
Syntax
C#
C++/CLI
Java
Python
public byte[] GetData() 
public byte[] getData(); 
public void setData( 
   byte[] 
); 
public: 
array<byte>^ GetData();  
def GetData(self): 

Return Value

An array of Byte that represents the information that describes this RasterRegion.

Remarks

You can use the GetData and SetData methods to save and load the content of a region to disk or memory.

If this RasterRegion is empty, then this method will return an array of 0 items.

Example

This example will loads an image, adds a region to it, gets the RasterRegion object from the image and set it to disk. It will then re-load this data from disk and set it back to another image.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
public void RasterRegionDataExample() 
{ 
 
 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion1.bmp"); 
   string regionFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Region.bin"); 
   string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion2.bmp"); 
 
   RasterRegion region = null; 
   using (RasterCodecs codecs = new RasterCodecs()) 
   { 
      // Load the source image 
      using (RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
      { 
         // Add an elliptical region to it 
         image.AddEllipseToRegion(null, new LeadRect(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set); 
 
         // Fill the image with a color and save it to disk to show the region 
         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow)); 
         cmd.Run(image); 
 
         codecs.Save(image, destFileName1, RasterImageFormat.Bmp, 24); 
 
         // Get the region 
         region = image.GetRegion(null); 
      } 
 
      // Save this region to disk 
      byte[] data = region.GetData(); 
      File.WriteAllBytes(regionFileName, data); 
 
      // Dispose the region 
      region.Dispose(); 
 
      // Now, reload the image and region from disk, set the region into the image directly 
      // from the data we save, re-fill and save again 
      using (RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
      { 
         // Create a region from the data we saved on disk 
         data = File.ReadAllBytes(regionFileName); 
         using (region = new RasterRegion(data)) 
         { 
            // Set this region into the image 
            image.SetRegion(null, region, RasterRegionCombineMode.Set); 
         } 
 
         // Fill the image with a color and save it to disk to show the region 
         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow)); 
         cmd.Run(image); 
 
         codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24); 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import static org.junit.Assert.assertTrue; 
 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.FillCommand; 
 
 
public void rasterRegionDataExample() throws IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp"); 
   String destFileName1 = combine(LEAD_VARS_IMAGES_DIR, "Image1_WithRegion1.bmp"); 
   String regionFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_Region.bin"); 
   String destFileName2 = combine(LEAD_VARS_IMAGES_DIR, "Image1_WithRegion2.bmp"); 
 
   RasterRegion region = null; 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Load the source image 
   RasterImage image = codecs.load(srcFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1); 
 
   // Add an elliptical region to it 
   image.addEllipseToRegion(null, new LeadRect(0, 0, image.getImageWidth(), image.getImageHeight()), 
         RasterRegionCombineMode.SET); 
 
   // Fill the image with a color and save it to disk to show the region 
   FillCommand cmd = new FillCommand(RasterColor.fromKnownColor(RasterKnownColor.YELLOW)); 
   cmd.run(image); 
   codecs.save(image, destFileName1, RasterImageFormat.BMP, 24); 
 
   // Get the region 
   region = image.getRegion(null); 
 
   // Save this region to disk 
   byte[] data = region.getData(); 
   try (FileOutputStream fos = new FileOutputStream(regionFileName)) { 
      fos.write(data); 
   } 
 
   // Dispose the region 
   region.dispose(); 
 
   // Now, reload the image and region from disk, set the region into the image 
   // directly 
   // from the data we save, re-fill and save again 
   RasterImage image2 = codecs.load(srcFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1); 
 
   // Create a region from the data we saved on disk 
   data = Files.readAllBytes(Paths.get(regionFileName)); 
 
   // Set this region into the image 
   image2.setRegion(null, region, RasterRegionCombineMode.SET); 
 
   // Fill the image with a color and save it to disk to show the region 
   FillCommand cmd2 = new FillCommand(RasterColor.fromKnownColor(RasterKnownColor.YELLOW)); 
   cmd2.run(image); 
 
   codecs.save(image2, destFileName2, RasterImageFormat.BMP, 24); 
 
   assertTrue("Image 1 unsuccessfully saved", new File(destFileName1).exists()); 
   System.out.println("Command run and image saved to " + destFileName1); 
 
   assertTrue("Image 2 unsuccessfully saved", new File(destFileName2).exists()); 
   System.out.println("Command run and image saved to " + destFileName2); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.5.22
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.