Sets the data for the image to the specified unmanaged memory buffer. 
Syntax
| Visual Basic (Declaration) | 
  | 
Public Sub SetUserData( _
   ByVal data As IntPtr, _
   ByVal size As Long _
)   | 
 
| Visual Basic (Usage) | 
 Copy Code | 
Dim instance As RasterImage
Dim data As IntPtr
Dim size As Long
 
instance.SetUserData(data, size)
  | 
 
Parameters
- data 
 - Pointer to the unmanaged memory buffer containing the image new data.
 - size 
 - Number of bytes in data.
 
 
Example
This example uses GetPixelData and SetPixelData methods to swap the R and G values for a particular pixel.
| Visual Basic | 
 Copy Code | 
Public Sub SetUserDataExample()    RasterCodecs.Startup()    Dim codecs As RasterCodecs = New RasterCodecs()
     Dim destFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "UserData.bmp"
         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)
         Dim image As RasterImage = New RasterImage(RasterMemoryFlags.User, width, height, bitsPerPixel, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, IntPtr.Zero, 0)
         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
         Marshal.Copy(buffer, 0, data1, buffer.Length)
         image.SetUserData(data1, dataSize)
         codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24)
     image.Dispose()    Marshal.FreeHGlobal(data1)    codecs.Dispose()    RasterCodecs.Shutdown() End Sub | 
 
| C# | 
 Copy Code | 
public void SetUserDataExample()  {     RasterCodecs.Startup();     RasterCodecs codecs = new RasterCodecs();       string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "UserData.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,        IntPtr.Zero,        0);       // 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     Marshal.Copy(buffer, 0, data1, buffer.Length);       // Set the user data     image.SetUserData(data1, dataSize);       // Save the image     codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);       image.Dispose();     Marshal.FreeHGlobal(data1);     codecs.Dispose();     RasterCodecs.Shutdown();  } | 
  
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
 
See Also