InternationalColorConsortium / DemoIccMAX

Demonstration Implementation for iccMAX color profiles
Other
121 stars 37 forks source link

Custom Names Color Space or Profile #60

Closed duncangroenewald closed 1 month ago

duncangroenewald commented 11 months ago

Hi, I am trying to figure out how to programatically create a "Spot Color" for use when generating a PDF programatically. I am hoping someone here may have some knowledge on whether it is possible to do that by creating a custom color space.

Unfortunately I know very little about creating a custom color space.

The application is developed in Swift on macOS and generates print ready PDF files. Some printing required the use of SPOT colors - so solid colors that cannot be printed using normal CMYK printing.

The printers need the PDF to have these elements printed using a custom named color space so their print systems will automatically pick up the components to be printed with the spot color.

I am hoping that perhaps I can use the DemoIccMAX libraries to create a custom profile of some sort that can be installed on macOS and subsequently used programatically.

So the related questions I have are:

  1. Is it possible to define a custom profile with a single color in XML and then use the DemoIccMAX libraries to generate a icc profile that can be installed on macOS. This single color can be green - the print shop doesn't use the actual color, they just use the specific name to identify the objects to be printed. They have a separate process to load the actual ink color. Typically this is required when printing white on black substrate - they need to use a solid white ink since you can't do white in CMYK.

  2. Is it possible to use these libraries to generate such a profile on the fly such that it can be used programatically by the macOS APIs such as

CGColorSpace.init(iccData:) Creates an ICC-based color space using the ICC profile contained in the specified data.

Any assistance will be much appreciated.

maxderhak commented 1 month ago

It is possible to define a Named color space profile as XML and use the iccFromXml tool to create an ICC profile. However, I'm unsure if such a profile could be installed and used by the MacOS to accomplish the requested outcomes. One important point is to distinguish between a colorspace in the context of an software development API and a named color profile. Named color profiles can have one or more named colors which provide a mapping between names, PCS values and/or Device color space values. My guess that having a color space profile will not work in the macOS in the manner that you are requesting.