Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ColorConversion
Public Sub ConvertDirectToImageExample()
' Initialize the RasterCodecs class
Dim codecs As RasterCodecs = New RasterCodecs
' StartUp the ColorConversion.
RasterColorConverterEngine.Startup()
' The input file name
Dim inputFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
' load the input image as Bgr.
Dim bgrImage As RasterImage = codecs.Load(inputFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)
' Image buffer array
Dim bgrBuffer(bgrImage.BytesPerLine * bgrImage.Height) As Byte
' get image buffer
For i As Integer = 0 To bgrImage.Height - 1
bgrImage.GetRow(i, bgrBuffer, (i * bgrImage.BytesPerLine), bgrImage.BytesPerLine)
Next
' Initialize a new Converter object
Dim converter As New RasterColorConverterEngine
' output Buffer array
Dim labBuffer(bgrBuffer.Length) As Byte
' Initialize a new ConversionParameters new class object.
Dim convParams As ConversionParameters = New ConversionParameters
' Initialize the labParams class property.
Dim labParameters As ConversionLabParameters = ConversionLabParameters.Empty
' Set its properties
labParameters.AOffset = 128
labParameters.ARange = 170
labParameters.BOffset = 96
labParameters.BRange = 200
labParameters.LOffset = 0
labParameters.LRange = 100
labParameters.Mask = ConversionLabMaskFlags.AOffset Or _
ConversionLabMaskFlags.ARange Or _
ConversionLabMaskFlags.BOffset Or _
ConversionLabMaskFlags.BRange Or _
ConversionLabMaskFlags.LOffset Or _
ConversionLabMaskFlags.LRange
convParams.LabParameters = labParameters
' Initialize an image to hold the converted buffer.
Dim labImage As RasterImage = Nothing
Try
' Start the color conversion
converter.Start(ConversionColorFormat.Bgr, ConversionColorFormat.Lab, Nothing)
' Change the Lab properties
convParams.Method = ConversionMethodFlags.ChangeLab
' Set the updated properties
converter.SetParameters(convParams)
' convert the image buffer
converter.Convert(bgrBuffer, _
0, _
labBuffer, _
0, _
bgrImage.Width, _
bgrImage.Height, _
CInt(bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8))), _
0)
' stop the conversion
converter.Stop()
' Initialize labImage.
labImage = New RasterImage(RasterMemoryFlags.Conventional, bgrImage.Width, bgrImage.Height, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, IntPtr.Zero, 0)
' convert the image buffer
' The srcBufferOffset parameter is an offset to the start byte of the data in the source buffer.
' For example, if the image data started at byte 5, then this variable should = 5.
' In our example here, the image data starts at byte 0.
' Note that the srcBuffer can be also passed to this function as an IntPtr pointer.
RasterColorConverterEngine.ConvertDirectToImage( _
ConversionColorFormat.Lab, _
ConversionColorFormat.Bgr, _
labBuffer, _
0, _
labImage, _
bgrImage.Width, _
bgrImage.Height, _
0, _
CInt(bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8))))
' dispose the used image
bgrImage.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
' Shutdown the ColorConversion.
RasterColorConverterEngine.Shutdown()
' the output File Name.
Dim outputFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "ResultImage.bmp")
' Save the result image.
codecs.Save(labImage, outputFileName, RasterImageFormat.Bmp, 24)
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.ColorConversion;
public void ConvertDirectToImageExample()
{
// Initialize the RasterCodecs class
RasterCodecs codecs = new RasterCodecs();
// StartUp the ColorConversion.
RasterColorConverterEngine.Startup();
// The input file name
string inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
// load the input image as Bgr.
RasterImage bgrImage = codecs.Load(inputFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1);
// Image buffer array
byte[] bgrBuffer = new byte[bgrImage.BytesPerLine * bgrImage.Height];
// get image buffer
for(int i = 0; i < bgrImage.Height; i ++)
bgrImage.GetRow(i, bgrBuffer, i * bgrImage.BytesPerLine, bgrImage.BytesPerLine);
// Initialize a new Converter object
RasterColorConverterEngine converter = new RasterColorConverterEngine();
// output Buffer array
byte[] labBuffer = new byte[bgrBuffer.Length];
ConversionParameters convParams = new ConversionParameters();
// Initialize the labParams structure property.
ConversionLabParameters labParameters = ConversionLabParameters.Empty;
// Set its properties
labParameters.AOffset = 128;
labParameters.ARange = 170;
labParameters.BOffset = 96;
labParameters.BRange = 200;
labParameters.LOffset = 0;
labParameters.LRange = 100;
labParameters.Mask = ConversionLabMaskFlags.AOffset |
ConversionLabMaskFlags.ARange |
ConversionLabMaskFlags.BOffset |
ConversionLabMaskFlags.BRange |
ConversionLabMaskFlags.LOffset |
ConversionLabMaskFlags.LRange;
convParams.LabParameters = labParameters;
// Initialize an image to hold the converted buffer.
RasterImage labImage = null;
try
{
// Start the color conversion
converter.Start(ConversionColorFormat.Bgr, ConversionColorFormat.Lab, null);
// Change the Lab properties
convParams.Method = ConversionMethodFlags.ChangeLab;
// Set the updated properties
converter.SetParameters(convParams);
// convert the image buffer
converter.Convert(bgrBuffer, // input buffer
0, // offset from the beginning of the source buffer
labBuffer, // output buffer
0, // offset from the beginning of the destination buffer
bgrImage.Width, // pixels width
bgrImage.Height, // pixels height
bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)),
0); // 0 bytes align
// stop the conversion
converter.Stop();
// Initialize labImage.
labImage = new RasterImage(RasterMemoryFlags.Conventional, bgrImage.Width, bgrImage.Height, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, IntPtr.Zero, 0);
// convert the image buffer
// The srcBufferOffset parameter is an offset to the start byte of the data in the source buffer.
// For example, if the image data started at byte 5, then this variable should = 5.
// In our example here, the image data starts at byte 0.
// Note that the srcBuffer can be also passed to this function as an IntPtr pointer.
RasterColorConverterEngine.ConvertDirectToImage(
ConversionColorFormat.Lab,
ConversionColorFormat.Bgr,
labBuffer, // converted buffer
0, // offset from the beginning of the source buffer
labImage, // image to be view
bgrImage.Width, // pixels width
bgrImage.Height, // pixels height
0, // 0 bytes align
bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)));
// dispose the used image
bgrImage.Dispose();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
// Shutdown the ColorConversion.
RasterColorConverterEngine.Shutdown();
// the output File Name.
string outputFileName = Path.Combine(LEAD_VARS.ImagesDir, "ResultImage.bmp");
// Save the converted Image
codecs.Save(labImage, outputFileName, RasterImageFormat.Bmp, 24);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ColorConversion;
public void ConvertDirectToImageExample()
{
// Initialize the RasterCodecs class
RasterCodecs codecs = new RasterCodecs();
// StartUp the ColorConversion.
RasterColorConverterEngine.Startup();
// The input file name
string inputFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp";
// load the input image as Bgr.
RasterImage bgrImage = codecs.Load(inputFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1);
// Image buffer array
byte[] bgrBuffer = new byte[bgrImage.BytesPerLine * bgrImage.Height];
// get image buffer
for (int i = 0; i < bgrImage.Height; i++)
bgrImage.GetRow(i, bgrBuffer, i * bgrImage.BytesPerLine, bgrImage.BytesPerLine);
// output Buffer array
byte[] labBuffer = new byte[bgrBuffer.Length];
// Initialize an image to hold the converted buffer.
RasterImage labImage = null;
try
{
// convert the image buffer
RasterColorConverterEngine.ConvertDirect(ConversionColorFormat.Bgr,
ConversionColorFormat.Lab,
bgrBuffer, // input buffer
0, // offset from the beginning of the source buffer
labBuffer, // output buffer
0, // offset from the beginning of the destination buffer
bgrImage.Width, // pixels width
bgrImage.Height, // pixels height
bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)),
0); // 0 bytes align
// Initialize labImage.
labImage = new RasterImage(RasterMemoryFlags.Conventional, bgrImage.Width, bgrImage.Height, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, null, 0);
// convert the image buffer
// The srcBufferOffset parameter is an offset to the start byte of the data in the source buffer.
// For example, if the image data started at byte 5, then this variable should = 5.
// In our example here, the image data starts at byte 0.
// Note that the srcBuffer can be also passed to this function as an IntPtr pointer.
RasterColorConverterEngine.ConvertDirectToImage(
ConversionColorFormat.Lab,
ConversionColorFormat.Bgr,
labBuffer, // converted buffer
0, // offset from the beginning of the source buffer
labImage, // image to be view
bgrImage.Width, // pixels width
bgrImage.Height, // pixels height
0, // 0 bytes align
bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)));
// dispose the used image
bgrImage.Dispose();
}
catch (Exception)
{
}
// Shutdown the ColorConversion.
RasterColorConverterEngine.Shutdown();
// the output File Name.
string outputFileName = LeadtoolsExamples.Common.ImagesPath.Path + "ResultImage.bmp";
// Save the converted Image
codecs.Save(labImage, outputFileName, RasterImageFormat.Bmp, 24);
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ColorConversion
Public Sub ConvertDirectToImageExample()
' Initialize the RasterCodecs class
Dim codecs As RasterCodecs = New RasterCodecs()
' StartUp the ColorConversion.
RasterColorConverterEngine.Startup()
' The input file name
Dim inputFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "Image1.cmp"
' load the input image as Bgr.
Dim bgrImage As RasterImage = codecs.Load(inputFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)
' Image buffer array
Dim bgrBuffer As Byte() = New Byte(bgrImage.BytesPerLine * bgrImage.Height - 1){}
' get image buffer
Dim i As Integer = 0
Do While i < bgrImage.Height
bgrImage.GetRow(i, bgrBuffer, i * bgrImage.BytesPerLine, bgrImage.BytesPerLine)
i += 1
Loop
' output Buffer array
Dim labBuffer As Byte() = New Byte(bgrBuffer.Length - 1){}
' Initialize an image to hold the converted buffer.
Dim labImage As RasterImage = Nothing
Try
' convert the image buffer
RasterColorConverterEngine.ConvertDirect(ConversionColorFormat.Bgr, ConversionColorFormat.Lab, bgrBuffer, 0, labBuffer, 0, bgrImage.Width, bgrImage.Height, bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)), 0) ' 0 bytes align
' Initialize labImage.
labImage = New RasterImage(RasterMemoryFlags.Conventional, bgrImage.Width, bgrImage.Height, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, Nothing, 0)
' convert the image buffer
' The srcBufferOffset parameter is an offset to the start byte of the data in the source buffer.
' For example, if the image data started at byte 5, then this variable should = 5.
' In our example here, the image data starts at byte 0.
' Note that the srcBuffer can be also passed to this function as an IntPtr pointer.
RasterColorConverterEngine.ConvertDirectToImage(ConversionColorFormat.Lab, ConversionColorFormat.Bgr, labBuffer, 0, labImage, bgrImage.Width, bgrImage.Height, 0, bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)))
' dispose the used image
bgrImage.Dispose()
Catch e1 As Exception
End Try
' Shutdown the ColorConversion.
RasterColorConverterEngine.Shutdown()
' the output File Name.
Dim outputFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "ResultImage.bmp"
' Save the converted Image
codecs.Save(labImage, outputFileName, RasterImageFormat.Bmp, 24)
End Sub