The Silicon Graphics Coloratura™ color management system (CMS) is a C library, available as a dynamically shared object, that provides an application program interface to color manipulation modules and ICC device characterization profiles. The interface allows you to use profiles to develop transformations between device-specific interpretations of color so that the appearances of color images are largely independent of input or output device characteristics. You can also use the Coloratura CMS along with appropriate device data to characterize a device.
To use the Coloratura CMS effectively, you should be a C programmer familiar with color image file formats. Knowledge of the Image Format Library, which is part of the ImageVision Library™, will simplify writing code to access image files. You will benefit from familiarity with terms from color management, such as gamut mapping or CIEXYZ, and from familiarity with the ICC Profile Format Specification.
Chapter 1, “Color Management,” briefly describes the color management problem and the major parts of the Coloratura CMS: profiles, tags, transforms, and color manipulation modules. It provides pseudocode to illustrate elementary components of the Coloratura CMS and describes the operations of a sample color manipulation application.
Chapter 2, “Using the Coloratura CMS Programming Environment,” shows you how to link your application to the Coloratura library and begin using the color management system. It also briefly describes commands and sample programs included in the Coloratura CMS.
Chapter 3, “Profile Management,” describes how to find profiles, create and modify profiles, import profiles embedded in image files, and export profiles so that they can be embedded in image files.
Chapter 4, “Tag Management,” describes how to access the fundamental data in profiles— tags and headers, read tags to determine if a profile is appropriate to your needs, and create or modify tags to change the contents of a profile.
Chapter 5, “Transform Management,” describes how to build transforms from profiles and apply transforms to pixel data.
Chapter 6, “Color Manipulation Module Management,” describes how to determine the default CMM and examine available CMMs.
Appendix A, “Summary of Functions and Data Structures,” summarizes Coloratura data structures and functions.
Appendix B, “Listing of the Application cocoifl,” presents a sample color conversion application.
The Glossary defines a few terms from color management.
You may find the following web sites useful for getting information on device-independent color and general topics of color processing:
The International Color Consortium's home page: http://www.color.org. The ICC Profile Format Specification is available from this site.
The Colour Science and Technology page has many useful links: http://www.ziggy.derby.ac.uk/web/colour.html.
The Colortron User Manual by Fred Bunting, published by Lightsource Computer Images, Inc., 1994, has nice introductory discussions of color science and color management, and an extensive bibliography.
ImageVision Library ™ Programming Guide, document Number 007-1387-050, available through IRIS Insight™ and at http://techpubs.engr.sgi.com/lib/makepage.cgi?007-1387-050, documents the Image Format Library.
IFL(3). The reference page introduces the Image Format Library, on which the ImageVision library is built. IFL is a convenient library with C and C++ bindings for manipulating graphics files in Coloratura applications.
Impressario Programming Guide, document number 007-1633-050, available through IRIS Insight and at http://techpubs.engr.sgi.com/lib/makepage.cgi?007-1633-050. An appendix discusses color management within the Impressario printer and scanner environment.
MIPS Compiling and Performance Tuning Guide, document Number 008-2479-001, http://techpubs.engr.sgi.com/lib/makepage.cgi?007-2479-001, discusses dynamic shared objects (DSOs).
Xlib Programming Manual for Version 11 of the X Window System by Adrian Nye, O'Reilly & Associates, Inc., 1992, discusses X-resource files.
These type conventions and symbols are used in this guide: