Created Date: 16 Mar, 2022 15:03
Last Modified Date: 03 Oct, 2023 12:07


This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.

Sometimes it is desirable to color manage using a transform that converts from M to N components, regardless of the color space used to paint objects. Both the input and output components are allowed to contain spots. It is expected that this will be useful in the packaging and labels market where such transforms are common practice.

Consider a (contrived) case where we want to convert CMYKOG through third-party C code to a CMYK device. To achieve this, the conversion function is called from the (CMYKOG-CMYK) CMM custom color space which is in customer C code in the (customers-color-space) alternate CMM; see Alternate CMMs: CMM custom color spaces. As the name suggests, the C function converts CMYKOG to CMYK. This example configuration is illustrated in Figure: NextDevice Spots (see below)

(customers-color-space) setalternatecmm
<<
  /DeviceRGB [ /ICCBased (iccprofiles/sRGB.icc) (r) file ]
>> setinterceptcolorspace
<<
  /Profile (iccprofiles/SWOP.icc) (r) file
  /NextDevice <<
    /InputColorSpace [
      /CMM (CMYKOG-CMYK)
      [ /DeviceN [/Cyan /Magenta /Yellow /Black /Orange /Green] /DeviceCMYK {pop pop} ]
      /DeviceCMYK
    ]
  >>
>> setreproduction
CODE

Most object colors are first converted to CMYK, via the SWOP.icc profile, if necessary, then converted via the CMYKOG-CMYK CMM custom color space. There is not an exact colorant match between the output of the SWOP.icc profile (CMYK) and the input to this CMM custom color space (CMYKOG). The RIP maps the components to the correct order and fill in missing components with zero values before calling the C function.

Orange and Green Separation color spaces are the only exceptions to the above. These are passed directly to the CMM custom color space because it names Orange and Green in its input components. Again, the RIP maps these components to the correct order and fill in missing components with zero values before calling the C function.

It is a requirement, see The setreproduction operator, that the input components of the CMM custom color space must include the CMYK from the output of the SWOP.icc profile. If further CMYK color management is undesirable, it is necessary for the C function to pass through pure CMYK values.

This method of passing colorants directly to a /NextDevice occurs no matter how many /NextDevice entries there are within the setreproduction dictionary. If a colorant is named in more than one /NextDevice, it is sent directly to the first one, bypassing previous /NextDevice entries.

If a named colorant is both one of the input components of a /NextDevice and present in an NCD, the NCD is ignored, and the colorant is passed directly to the /NextDevice.

If a named colorant is both one of the input components of a /NextDevice and a device colorant, the colorant is passed to the /NextDevice, and not directly to the output device.

If an NCD converts to a named colorant that is also one of the input components to a /NextDevice, this is also passed directly to the /NextDevice. For example, if the above configuration is used in conjunction with a named colorant (Gold), which is present in an NCD which converts to Separation (Orange), the Orange component is sent directly to the CMYKOG-CMYK CMM custom color space.

Figure: NextDevice Spots