Using Leadtools Ver 17 and your example in WhitePoint Property to convert an RGB File to CMYK. The output file is still an RGB file. I changed the example Visual Basic output file from .bmp to .tif as a .bmp file can only be an RGB file. I've attached the sample file and the result.
Here's the code I used:
Visual Basic (Declaration)
Public Property WhitePoint() As ConversionWhitePoint
Get
End Get
Set(ByVal value As ConversionWhitePoint)
End Set
End Property
Visual Basic Code
Public Sub WhitePointExampleExample()
' 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 Rgb.
'Dim inputFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
Dim rgbImage As RasterImage = codecs.Load("d:\testrgb.jpg", 24, CodecsLoadByteOrder.Rgb, 1, 1)
' Image buffer array
Dim rgbBuffer(rgbImage.BytesPerLine * rgbImage.Height) As Byte
' get image buffer
For i As Integer = 0 To rgbImage.Height - 1
rgbImage.GetRow(i, rgbBuffer, (i * rgbImage.BytesPerLine), rgbImage.BytesPerLine)
Next
' Initialize the Cmyk buffer array
Dim cmykBuffer(CInt(rgbImage.Height * rgbImage.Width * 4)) As Byte
' Initialize a new Converter object
Dim converter As New RasterColorConverterEngine
' Initialize a new ConversionParameters new class object.
Dim convParams As ConversionParameters = New ConversionParameters
' Initialize the WhitePoint property class.
Dim whitePoint As ConversionWhitePoint = ConversionWhitePoint.Empty
' Set the WhitePoint property.
whitePoint.WhitePoint = ConversionWhitePointType.D50
' Set the XWhite property.
whitePoint.XWhite = 0
' Set the YWhite property.
whitePoint.YWhite = 0
convParams.WhitePoint = whitePoint
' Set the Quantization property.
convParams.Quantization = 8
' Set the Method property.
convParams.Method = ConversionMethodFlags.UseBuiltIn
' Set the ActiveMethod property.
convParams.ActiveMethod = ConversionMethodFlags.UseBuiltIn
' Set GcrLevel property.
Dim cmykParameters As New ConversionCmykParameters()
cmykParameters.GcrLevel = 150
convParams.CmykParameters = cmykParameters
Try
' Start the ColorConversion.
converter.Start(ConversionColorFormat.Rgb, ConversionColorFormat.Cmyk, convParams)
' Convert Rgb to CMYK.
converter.Convert(rgbBuffer, 0, cmykBuffer, 0, rgbImage.Width, rgbImage.Height, CInt(rgbImage.BytesPerLine - (rgbImage.Width * (rgbImage.BitsPerPixel / 8))), 0)
' Stop the ColorConversion.
converter.Stop()
' Initialize an image to hold the converted buffer.
Dim cmykImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, rgbImage.Width, rgbImage.Height, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, IntPtr.Zero, 0)
' Start the color conversion
converter.Start(ConversionColorFormat.Cmyk, ConversionColorFormat.Bgr, convParams)
' convert the image buffer
converter.ConvertToImage(cmykBuffer, 0, cmykImage, rgbImage.Width, rgbImage.Height, 0, CInt(rgbImage.BytesPerLine - (rgbImage.Width * (rgbImage.BitsPerPixel / 8))))
' stop the conversion
converter.Stop()
' the output File Name.
' Dim outputFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "ResultImage.bmp"
' Save the result image.
codecs.Save(cmykImage, "d:\testcmykoutput.tif", RasterImageFormat.Tif, 24)
' dispose the used images
rgbImage.Dispose()
cmykImage.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
' Shutdown the ColorConversion.
RasterColorConverterEngine.Shutdown()
End Sub