You can convert the pixel format from RGB to CMYK with:
ImageEnView.LegacyBitmap := false; // tells: don't use TBitmap
ImageEnView.IEBitmap.PixelFormat := ieCMYK;
You can extract CMYK pixel with:
CMYK := ImageEnView.IEBitmap.Pixels_ieCMYK[col, row];
CMYK is typed as TCMYK.
To create 4 layers, you have to loop among all pixels:
var
col, row: integer;
w, h: integer;
begin
// layer 0 (CMYK image, you can also load native CMYK image)
ImageEnView1.LegacyBitmap := false;
ImageEnView1.IO.LoadFromFile('input.jpg');
ImageEnView1.IEBitmap.PixelFormat := ieCMYK;
w := ImageEnView1.IEBitmap.Width;
h := ImageEnView1.IEBitmap.Height;
ImageEnView1.LayersAdd(w, h, ie8g); // layer 1 = C
ImageEnView1.LayersAdd(w, h, ie8g); // layer 2 = C
ImageEnView1.LayersAdd(w, h, ie8g); // layer 3 = C
ImageEnView1.LayersAdd(w, h, ie8g); // layer 4 = C
for row := 0 to h - 1 do
begin
for col := 0 to w - 1 do
begin
with ImageEnView1.Layers[0].Bitmap.Pixels_ieCMYK[col, row] do
begin
ImageEnView1.Layers[1].Bitmap.Pixels_ie8[col, row] := c;
ImageEnView1.Layers[2].Bitmap.Pixels_ie8[col, row] := m;
ImageEnView1.Layers[3].Bitmap.Pixels_ie8[col, row] := y;
ImageEnView1.Layers[4].Bitmap.Pixels_ie8[col, row] := k;
end;
end;
end;
end;