Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
MainPage.h
Go to the documentation of this file.
1/** @file
2 File: MainPage.h
3
4 Note: This file was added to provide documentation in doxygen. Nothing in IccProfLib actually uses it.
5*/
6
7/** \mainpage
8 *
9 * The IccProfLib is an open source cross platform C++ library for reading, writing, manipulating,
10 * and applying ICC profiles. It is an attempt at a strict interpretation of the ICC profile
11 * specification.
12 * The structure of the library very closely follows the structure of the specification.
13 * A working knowledge of the ICC specification and color management workflows will aid in
14 * understanding the library and it's proper usage. For the latest ICC profile
15 * specification please visit http://www.color.org. Several useful white papers and resources
16 * are also available on the website.
17 *
18 *
19 * Here are some of the things that the IccProfLib supports:
20 * - ICC profile file I/O in CIccProfile class
21 * - Version 5.0 profiles (read & write)
22 * - Version 4.3 profiles (read & write)
23 * - Version 2.x profiles (read)
24 * - C++ classes for all specified tag types (based on CIccTag). Default behavior for
25 * unrecognized private tag types is implemented using a generic Tag class.
26 * - Two basic Color Management Module (CMM) implementations
27 * - Basic pixel level transforms in CIccCmm class
28 * - Additional named color profile support in CIccNamedColorCmm class
29 * - File I/O can be re-directed
30 * - All operations performed using floating point. Pixel precision not limited to integers.
31 * - Transforms are done one pixel at a time.
32 * - Flexible number of profile transforms in a series (as long as the colorspaces match)
33 * - Multidimensional lookup table interpolation
34 * - Three dimensional interpolation uses either linear or tetrahedral interpolation
35 * (selectable at time profile is attached to the CMM).
36 * - Greater than three dimensional interpolation uses linear interpolation
37 * - Matrix/TRC support
38 * - Calculation of Profile ID using the MD5 fingerprinting method (see IccMD5.h)
39 * - Dynamic creation and seemless use of private CIccTag derived objects that are implemented
40 * outside of IccProfLib (IE inside a private library or application that links with
41 * IccProfLib).
42 *
43 * <b>USAGE COMMENTS</b>
44 * -# The IccProfLib implements very basic CMMs. These may not
45 * provide the optimum speed in all situations. Profile transforms are done one pixel
46 * at a time for each profile in a profile transformation chain. Various techniques
47 * can possibly be used to improve performance. An initial thought would be to create a
48 * CMM that uses the basic CIccCmm to generate a single link transform (concatenating
49 * the profiles). Such a transform could employ integer math if needed.
50 * -# The IccProfLib can be used to open, generate, manipulate (by adding, removing, or
51 * modifying tags), and/or save profiles without needing to use the pixel transformations
52 * provided by the CMM classes.
53 * -# Several applications have been written (in RefIccMAX) that make use of the IccProfLib.
54 * It is advisable to examine these applications for additional guidance in making
55 * the best use of the IccProfLib.
56 * -# Before compiling on non-Windows and non Mac OSX platforms it will be necessary to edit
57 * the configuration parameters in IccProfLibConf.h.
58 *
59 * <b>VERSION HISTORY</b>
60 * - Initially based on April 2011 - 1.6.5 release of SampleICC
61 *
62 * <b>TODO List</b>
63 * TBD
64 *
65 * <b>The ICC Software License, Version 0.2</b>
66 *
67 * Copyright � 2003-2016 The International Color Consortium. All rights
68 * reserved.
69 *
70 * Redistribution and use in source and binary forms, with or without
71 * modification, are permitted provided that the following conditions
72 * are met:
73 *
74 * 1. Redistributions of source code must retain the above copyright
75 * notice, this list of conditions and the following disclaimer.
76 *
77 * 2. Redistributions in binary form must reproduce the above copyright
78 * notice, this list of conditions and the following disclaimer in
79 * the documentation and/or other materials provided with the
80 * distribution.
81 *
82 * 3. In the absence of prior written permission, the names "ICC" and "The
83 * International Color Consortium" must not be used to imply that the
84 * ICC organization endorses or promotes products derived from this
85 * software.
86 *
87 *
88 * ====================================================================\n
89 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED\n
90 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n
91 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n
92 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR\n
93 * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n
94 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n
95 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF\n
96 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n
97 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n
98 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\n
99 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n
100 * SUCH DAMAGE.\n
101 * ====================================================================
102 *
103 * This software consists of voluntary contributions made by many
104 * individuals on behalf of the The International Color Consortium.
105 *
106 * Membership in the ICC is encouraged when this software is used for
107 * commercial purposes.
108 *
109 *
110 * <b>CONTACT</b>
111 *
112 * Please send your questions, comments, and or suggestions to forums
113 * on the SampleICC project site. (http://sourceforge.net/projects/sampleicc/).\n
114 *
115 */
116