Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.28
|
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;}
@property (nonatomic, assign, readonly, nullable) const NSData *data
public Object getData()
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.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Core Imports Leadtools.ImageProcessing.Color Imports Leadtools.Controls Imports Leadtools.Dicom Imports Leadtools.Drawing Imports Leadtools.Svg 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
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 DataExample() { RasterCodecs codecs = new RasterCodecs(); string destFileName = Path.Combine(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(); }