public int BRange { get; set; }
The B component range.
using Leadtools;using Leadtools.Codecs;using Leadtools.ColorConversion;public void ConvertDirectToImageExample(){// Initialize the RasterCodecs classRasterCodecs codecs = new RasterCodecs();// StartUp the ColorConversion.RasterColorConverterEngine.Startup();// The input file namestring 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 arraybyte[] bgrBuffer = new byte[bgrImage.BytesPerLine * bgrImage.Height];bgrImage.Access();// get image bufferfor (int i = 0; i < bgrImage.Height; i++)bgrImage.GetRow(i, bgrBuffer, i * bgrImage.BytesPerLine, bgrImage.BytesPerLine);bgrImage.Release();// Initialize a new Converter objectRasterColorConverterEngine converter = new RasterColorConverterEngine();// output Buffer arraybyte[] labBuffer = new byte[bgrBuffer.Length];ConversionParameters convParams = new ConversionParameters();// Initialize the labParams structure property.ConversionLabParameters labParameters = ConversionLabParameters.Empty;// Set its propertieslabParameters.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 conversionconverter.Start(ConversionColorFormat.Bgr, ConversionColorFormat.Lab, null);// Change the Lab propertiesconvParams.Method = ConversionMethodFlags.ChangeLab;// Set the updated propertiesconverter.SetParameters(convParams);// convert the image bufferconverter.Convert(bgrBuffer, // input buffer0, // offset from the beginning of the source bufferlabBuffer, // output buffer0, // offset from the beginning of the destination bufferbgrImage.Width, // pixels widthbgrImage.Height, // pixels heightbgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)),0); // 0 bytes align// stop the conversionconverter.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 buffer0, // offset from the beginning of the source bufferlabImage, // image to be viewbgrImage.Width, // pixels widthbgrImage.Height, // pixels height0, // 0 bytes alignbgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)));// dispose the used imagebgrImage.Dispose();}catch (Exception ex){Debug.WriteLine(ex.Message);}// Shutdown the ColorConversion.RasterColorConverterEngine.Shutdown();// the output File Name.string outputFileName = Path.Combine(LEAD_VARS.ImagesDir, "ResultImage.bmp");// Save the converted Imagecodecs.Save(labImage, outputFileName, RasterImageFormat.Bmp, 24);}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}