Color Profile Basic Concepts
The first step in the color profile process is loading raster data from an external location (file, memory, or other) and converting it from some graphical file format to an internal uniform format that is incorporated into the HIGEAR object. After the image is loaded into memory, it is possible to perform different manipulations with it such as image processing transforms, color conversions, displaying, printing, and, finally, an export operation that converts raster data from internal representation into an external graphics file format.
All these steps may require color conversions. As the color profile is always associated with the appropriate device, there are several virtual devices defined in ImageGear. These "virtual devices" are not real devices, but abstract things that have associated color spaces and are used to convert color data from one color space to another. There are three virtual devices defined in ImageGear:
- Import devices - used for all import operations. Such import operations as loading a raster image using the format filter assume that imported color data is dependent on the import device. In other words, any format filter that loads color data in a device-dependent format from an external file format assumes that this data is dependent on this specific device.
- Export devices - the same as the import device, but used for export operations.
- Working devices - associated with color data stored in a HIGEAR object.
So we can assume every color conversion is a transition from one device to another. For example, loading an image from an external file using the file format filter (import device) to the internal HIGEAR representation (working device) assumes that the color data has to be "copied" from the import to the working device, i.e., color data has to be converted using color profiles associated with import and working devices.
ImageGear supports different color spaces such as RGB, CMYK, and grayscale. So each virtual device may be used with different color spaces. For example, the format filter may load pixels from an external file format in CMYK color space, and it will be necessary to convert color data from the CMYK color space associated with the import device to CMYK or another color space associated with the working device. Each device may have associated color profiles for different color spaces, and they are organized into groups - one group for each device.
You can find the exact definition of the term "color profile" in public specification ICC.1:1998-09 or newer. In general a color profile consists of a set of objects and transforms the specified parameters of color conversion from a standard device-independent color space (PCS) to a necessary device-dependent one. The ImageGear color management system accepts a color profile in the format specified in the ICC.1:1998-09 specification and converts it into internal representation for faster processing.