The KCMS CMM Reference Manual provides detailed descriptions of the Kodak Color Management System (KCMSTM) foundation library. This library is a graphics porting interface (GPI) implemented in C++ for creating KCMS color modules. A set of C++ classes are supplied that can be derived from and extended. You can add attributes to the current list, incorporate new color processing technology, or support alternate profile formats.
Use this book with the KCMS CMM Developer's Guide which provides an in-depth view of the KCMS framework and how the API works with this GPI, how to derive from each C++ class, how to create a dynamically loadable CMM, and how to add profiles to the system.
Use this book if you are interested in:
Writing your own color management module (CMM)
Creating your own profile format
Adding attributes to the ICC profile format
Overriding various class methods
You should be familiar with the Kodak Color Management System (KCMS) API which is part of the SDK; see the KCMS Application Developer's Guide.
You should also have an understanding of C++ and Solaris dynamic loading technology. Solaris dynamic loading is discussed in the Linker and Libraries Guide and in the following manual pages in man Pages(1): User Commands and man Pages(3): Library Routines:
ld(1)
dlopen(3)
dlclose(3)
dlerror(3)
dlsym(3)
OWconfigInit(3)
OWconfigGetAttribute(3)
OWconfigFreeAttribute(3)
OWconfigClose(3)
A basic understanding of color science is also assumed; references are included in the Bibliography of the KCMS Application Developer's Guide.
See the on-line SUNWrdm packages for information on bugs and issues, engineering news, and patches. For Solaris installation bugs and for late-breaking bugs, news, and patch information, see the Solaris 8 (SPARC Platform Edition) Installation Guide and the Solaris 8 (Intel Platform Edition) Installation Guide manuals.
For SPARC systems, consult the updates your hardware manufacturer may have provided also.
Each chapter in this book describes relevant classes in the KCMS architecture. Although the DDK header files may include additional information (private and methods and other internal interfaces) for each class, be aware that the chapters in this book present all the methods you need to be concerned about to write your CMM.
The chapters are organized as follows:
Chapter 1, KcsShareable Class describes the KcsShareable class.
Chapter 2, I/O Classes describes these I/O classes: KcsIO, KcsFile, KcsMemoryBlock, KcsSolarisFile, and KcsXWindow.
Chapter 3, KcsChunkSet Class describes in detail the KcsChunkSet class.
Chapter 4, KcsLoadable Class describes in detail the KcsLoadable class.
Chapter 5, KcsProfile Class describes in detail the KcsProfile class.
Chapter 6, KcsProfileFormat Class describes in detail the KcsProfileFormat class.
Chapter 7, KcsTags Class describes in detail the KcsAttributeSet class.
Chapter 8, KcsXform Class describes the member functions in the KcsXform class.
Chapter 9, KcsXformSeq Class describes the member functions in the KcsXformSeq class.
The following is a list of recommended books that can help you accomplish the tasks described in this book:
ICC Profile Format Specification (located on-line in /opt/SUNWsdk/kcms/doc/icc.ps). For the most current version of the ICC specification, see the web site at http://www.color.org.
Each class contains a KcsId that uniquely identifies that class. Most KcsIds are defined in the kcsids.h header file. The naming conventions shown in the following table are used for the KcsId for each class in the KCMS framework. The #defines are helpful in switch statements.
Table P-1 KcsId Naming Conventions
Item |
Convention |
Examples |
---|---|---|
const |
Kcs<Base Class Id><Derived Class Id>Id |
KcsSharIOId |
#define |
Kcs<Base Class Id><Derived Class Id>Idd |
KcsSharIOIdd |
For historic reasons, this book uses several equivalent Kodak and International Color Consortium (ICC) terms. The terms evolved at different times. Development of the ICC specification introduced new ICC terms with meanings the same as (or similar to) already existing Kodak terms.
You should be familiar with the terms listed in the table below, as you will encounter them in the ICC specification and KCMS color management documentation, as well as in the KCMS header files and example programs. The terms are defined as they are introduced in this book.
Table P-2 Equivalent ICC and Kodak Terms
Kodak Term |
ICC Term |
---|---|
attribute |
tag |
device color profile (DCP) |
input, display, or output profile |
effects color profile (ECP) |
abstract profile |
complete color profile (CCP) |
device link profile |
profile format Id or magic number |
profile file signature |
reference color space (RCS) |
profile connection space (PCS) |
The text in this book uses the term attribute instead of tag, (but code examples and header files may use tag for the historic reasons previously mentioned.
Fatbrain.com, an Internet professional bookstore, stocks select product documentation from Sun Microsystems, Inc.
For a list of documents and how to order them, visit the Sun Documentation Center on Fatbrain.com at http://www1.fatbrain.com/documentation/sun.
The docs.sun.comSM Web site enables you to access Sun technical documentation online. You can browse the docs.sun.com archive or search for a specific book title or subject. The URL is http://docs.sun.com.
The following table describes the typographic changes used in this book.
Table P-3 Typographic Conventions
Typeface or Symbol |
Meaning |
Example |
---|---|---|
AaBbCc123 | The names of commands, files, and directories; on-screen computer output |
Edit your .login file. Use ls -a to list all files. machine_name% you have mail. |
AaBbCc123 | What you type, contrasted with on-screen computer output | machine_name% su Password: |
AaBbCc123 | Command-line placeholder: replace with a real name or value |
To delete a file, type rm filename. |
AaBbCc123 |
Book titles, new words, or terms, or words to be emphasized. |
Read Chapter 6 in User's Guide. These are called class options. You must be root to do this. |
The following table shows the default system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.
Table P-4 Shell Prompts
Shell |
Prompt |
---|---|
C shell prompt | machine_name% |
C shell superuser prompt | machine_name# |
Bourne shell and Korn shell prompt | $ |
Bourne shell and Korn shell superuser prompt | # |