public int GcrLevel { get; set; }
The GCR value. Possible values are between 0 and 1000.
using Leadtools;using Leadtools.Codecs;using Leadtools.ColorConversion;using Leadtools.ImageProcessing;public string builtInOutputFile = Path.Combine(LEAD_VARS.ImagesDir, "ColorConversion", "BuiltInCmykToRgb.bmp");public string parametersOutputFile = Path.Combine(LEAD_VARS.ImagesDir, "ColorConversion", "ParametersCmykToRgb.bmp");public void SetParametersExample(){// StartUp the Color Conversion EngineRasterColorConverterEngine.Startup();// Initialize a new Converter objectRasterColorConverterEngine colorConverterEngine = new RasterColorConverterEngine();// Input file namestring inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp");// Load the input image as BGRusing (RasterCodecs codecs = new RasterCodecs())using (RasterImage bgrImage = codecs.Load(inputFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)){// Image width and heightint width = bgrImage.Width;int height = bgrImage.Height;// Get BGR bufferbyte[] bgrBuffer = new byte[bgrImage.BytesPerLine * bgrImage.Height];bgrImage.Access();bgrImage.GetRow(0, bgrBuffer, 0, bgrImage.BytesPerLine * bgrImage.Height);bgrImage.Release();// Convert to CMYKbyte[] cmykBuffer = new byte[bgrImage.Height * bgrImage.Width * 4];colorConverterEngine.Start(ConversionColorFormat.Bgr, ConversionColorFormat.Cmyk, null);colorConverterEngine.Convert(bgrBuffer, // Input buffer0, // Offset from the beginning of the source buffercmykBuffer, // Output buffer0, // Offset from the beginning of the destination bufferbgrImage.Width, // Pixels widthbgrImage.Height, // Pixels heightbgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)), // Scanline alignment for input buffer0); // Scanline alignment for output buffercolorConverterEngine.Stop();// Set White Point and CMYK parameters for conversion with built-in methodConversionParameters convParams = new ConversionParameters();convParams.Method = ConversionMethodFlags.UseBuiltIn | ConversionMethodFlags.UseIcc;convParams.ActiveMethod = ConversionMethodFlags.UseBuiltIn;convParams.WhitePoint = new ConversionWhitePoint() { WhitePoint = ConversionWhitePointType.D50 };convParams.CmykParameters = new ConversionCmykParameters() { GcrLevel = 150 };// Convert to RGBbyte[] rgbBuffer = new byte[cmykBuffer.Length - cmykBuffer.Length / 4];colorConverterEngine.Start(ConversionColorFormat.Cmyk, ConversionColorFormat.Rgb, convParams);colorConverterEngine.Convert(cmykBuffer,0,rgbBuffer,0,width,height,0,bgrImage.BytesPerLine - (bgrImage.Width * (bgrImage.BitsPerPixel / 8)));// Save output RGB imageusing(RasterImage outputRgbImage = new RasterImage(RasterMemoryFlags.Conventional, width, height, 24, RasterByteOrder.Rgb, RasterViewPerspective.TopLeft, null, rgbBuffer, rgbBuffer.Length))codecs.Save(outputRgbImage, builtInOutputFile, RasterImageFormat.Bmp, 24);// Change conversion parametersconvParams.Method = ConversionMethodFlags.ChangeActiveMethod | ConversionMethodFlags.ChangeCmyk;convParams.ActiveMethod = ConversionMethodFlags.UseIcc;convParams.CmykParameters = new ConversionCmykParameters() { GcrLevel = 150, Mask = ConversionCmykMask.Gcr };// Update and convert using the new conversion parameterscolorConverterEngine.SetParameters(convParams);colorConverterEngine.Convert(cmykBuffer, 0, rgbBuffer, 0, width, height, 0, 0);colorConverterEngine.Stop();// Save output RGB imageusing (RasterImage outputRgbImage = new RasterImage(RasterMemoryFlags.Conventional, width, height, 24, RasterByteOrder.Rgb, RasterViewPerspective.TopLeft, null, rgbBuffer, rgbBuffer.Length))codecs.Save(outputRgbImage, parametersOutputFile, RasterImageFormat.Bmp, 24);}// Dispose of color converter enginecolorConverterEngine.Dispose();// Shutdown the RasterColor Color Converter EngineRasterColorConverterEngine.Shutdown();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}