Leadtools Namespace > RasterImage Class : Data Property |
public object Data {get;}
'Declaration Public ReadOnly Property Data As Object
'Usage Dim instance As RasterImage Dim value As Object value = instance.Data
public object Data {get;}
get_Data();
This value should only be used with images created with user-defined data. Other type of images will return an undefined internal value.
Public Sub DataExample() Dim codecs As RasterCodecs = New RasterCodecs() Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "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() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
public void DataExample() { RasterCodecs codecs = new RasterCodecs(); string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "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(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2