Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
Data Property
See Also  Example
Leadtools Namespace > RasterImage Class : Data Property



Gets the data for the image in native format.

Syntax

Visual Basic (Declaration) 
Public ReadOnly Property Data As Object
Visual Basic (Usage)Copy Code
Dim instance As RasterImage
Dim value As Object
 
value = instance.Data
C# 
public object Data {get;}
C++/CLI 
public:
property Object^ Data {
   Object^ get();
}

Return Value

The data for the image.

Example

Visual BasicCopy Code
Public Sub DataExample()
   RasterCodecs.Startup()
   Dim codecs As RasterCodecs = New RasterCodecs()

   Dim destFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Data.bmp"

   ' Create an image with user defined data
   Dim width As Integer = 40
   Dim height As Integer = 40
   Dim bitsPerPixel As Integer = 24
   Dim size As Integer = width * height * 3
   Dim data1 As IntPtr = Marshal.AllocHGlobal(size)

   ' Load the image
   Dim image As RasterImage = New RasterImage(RasterMemoryFlags.User, width, height, bitsPerPixel, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, data1, size)

   ' Get a pointer to the internal data and fill it with gray shades
   Dim dataSize As Integer = CInt(image.DataSize)

   Dim buffer As Byte() = New Byte(dataSize - 1) {}
   Dim inc As Boolean = True
   Dim value As Byte = 0
   Dim i As Integer = 0
   Do While i < buffer.Length
      buffer(i + 0) = value
      buffer(i + 1) = value
      buffer(i + 2) = value

      If inc Then
         If value = 255 Then
            inc = False
            value = 254
         Else
            value = value + Convert.ToByte(1)
         End If
      Else
         If value = 0 Then
            inc = True
            value = 1
         Else
            value = value - Convert.ToByte(1)
         End If
      End If
      i += 3
   Loop

   ' Copy this buffer to the image data
   Dim data2 As IntPtr = CType(image.Data, IntPtr)
   Marshal.Copy(buffer, 0, data2, buffer.Length)

   ' Save the image
   codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24)

   image.Dispose()
   Marshal.FreeHGlobal(data1)
   codecs.Dispose()
   RasterCodecs.Shutdown()
End Sub
C#Copy Code
public void DataExample() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Data.bmp"; 
 
   // Create an image with user defined data 
   int width = 40; 
   int height = 40; 
   int bitsPerPixel = 24; 
   int size = width * height * 3; 
   IntPtr data1 = Marshal.AllocHGlobal(size); 
 
   // Load the image 
   RasterImage image = new RasterImage( 
      RasterMemoryFlags.User, 
      width, 
      height, 
      bitsPerPixel, 
      RasterByteOrder.Bgr, 
      RasterViewPerspective.TopLeft, 
      null, 
      data1, 
      size); 
 
   // Get a pointer to the internal data and fill it with gray shades 
   long dataSize = image.DataSize; 
 
   byte[] buffer = new byte[dataSize]; 
   bool inc = true; 
   byte value = 0; 
   for(int i = 0; i < buffer.Length; i += 3) 
   { 
      buffer[i + 0] = value; 
      buffer[i + 1] = value; 
      buffer[i + 2] = value; 
 
      if(inc) 
      { 
         if(value == 255) 
         { 
            inc = false; 
            value = 254; 
         } 
         else 
            value++; 
      } 
      else 
      { 
         if(value == 0) 
         { 
            inc = true; 
            value = 1; 
         } 
         else 
            value--; 
      } 
   } 
 
   // Copy this buffer to the image data 
   IntPtr data2 = (IntPtr)image.Data; 
   Marshal.Copy(buffer, 0, data2, buffer.Length); 
 
   // Save the image 
   codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); 
 
   image.Dispose(); 
   Marshal.FreeHGlobal(data1); 
   codecs.Dispose(); 
   RasterCodecs.Shutdown(); 
}

Remarks

This value should only be used with images created with user-defined data. Other type of images will return an undefined internal value.

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also