Making ICC profiles for devices
An ICC device profile contains the information needed to transform colour data between device values and a device-independent CIE-based colour space. The ICC specification contains full details of the structure of such profiles.
To make an ICC profile for a colour device you need a profiling package. This normally includes a measurement instrument, a test target, and a software program which can read the measurements and generate the profile.
For an output device (display or printer) colour patches are displayed or printed and then measured. For an input device (scanner or camera) the test target supplied with the profiling package is captured and measurements of the target will usually be available within the software.
Once the software has the device data and the corresponding measurements, it proceeds to create the data structures which form the profile. Depending on how complex the device is to model, the profile may be anything from 1K to several MB in size.
You can see the data in the profile by opening it in a profile inspection utility such as Profile Inspector.
A number of the ICC members can supply profiling tools including measurement instruments and software to make ICC profiles. Profiling packages are often modular, so you can select the components of the package you need for the devices you want to profile.
If you prefer to have someone make the profile for you, try one of the remote profiling services which are available (search Google for: icc remote "profiling service" to get a list).
For developers, there are a number of publicly-available source code libraries, such as SampleICC, which include tools to generate profiles. SampleICC includes iccCreateCLUTInputProfile, a utility that will generate an ICC profile from the data for a 3D look-up table.