summaryrefslogtreecommitdiff
path: root/icc/Readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'icc/Readme.txt')
-rw-r--r--icc/Readme.txt150
1 files changed, 150 insertions, 0 deletions
diff --git a/icc/Readme.txt b/icc/Readme.txt
new file mode 100644
index 0000000..0ec425e
--- /dev/null
+++ b/icc/Readme.txt
@@ -0,0 +1,150 @@
+ICC profile I/O library (icclib), README file
+---------------------------------------------
+
+This version is part of Argyll V 1.50
+
+-------------------------------------------
+
+Date 22 September 2012, Version 2.14
+
+This distribution contains source code which implements the reading and
+writing of color profile files that conform to the International Color
+Consortium (ICC) Profile Format Specification, Version 3.4.
+
+For more information about the ICC, and for copies of the specification,
+please refer to <http://www.color.org/>
+
+(Note that this software is written from the ICC V3.4 standard, but the
+software and its author are not affiliated with, or otherwise connected
+with the ICC.)
+
+The ICC profile I/O library archive is kept at <http://www.argyllcms.com/>
+
+Motivation
+
+Color is still very much a black art to many programmers dealing with
+computer graphics. The ICC Profile Format is an industry attempt to provide
+an interchange format to help solve the problems of specifying color, and
+in transferring color graphics from, and between systems and devices.
+Although the ICC format has been around a number of years, and has long
+been adopted by companies in the business of providing systems for
+publishing and printing, and is now widely used as part of commercial
+operating system support for device independent color, its uptake in the
+general world of computer graphics has been slow.
+
+The writing of this library was prompted by my private and professional
+enthusiasm for computer graphics, and color. Inspired by other examples of
+freely usable software (notably the Independent JPEG Group's free JPEG
+software, and Sam Leffler's TIFF library), I have decided to make this
+library available under similar terms. I hope that this library will
+provide a starting point for including ICC profile support more widely that
+is currently the case, particularly in open source code projects.
+
+Overview
+
+This package contains a C software implementation of the ICC Profile
+Format, Version 3.4. The ICC Profile Format attempts to provide a
+cross-platform device profile format, that can be used to translate color
+data created on one device into another device's native color space. For a
+fuller explanation of what the ICC Profile Format is all about, please
+refer to http://www.color.org, and the profile specification.
+
+In summary this library provides:
+
+ * Full source code, free for commercial and non-commercial use.
+ * Support for all version 3.4 header elements, Tags and Tag Types.
+ * Conversion to/from machine native representation of all data
+ types.
+ * Support for user defined Tags.
+ * Support for adding/deleting Tags.
+ * Support for Tag type sharing within a file (often used for
+ sharing LUTs amongst intents).
+ * Support for reading/writing embedded profiles, including from/to
+ a memory buffer, rather than a file.
+ * Provides a single function for transforming color values through
+ a profile, including support for intents, forward and reverse
+ transforms, gamut lookup or preview lookup.
+ * Provides support and code examples for creating all profile
+ types, monochrome, matrix and Lut.
+ * Attempts to be platform neutral, and flexibility in its use of
+ system file and memory sub-systems.
+ * Loads Tag Types on demand to conserve memory space.
+
+Changes from V2.11
+
+Many changes have been made to support ArgyllCMS.
+A double memory free bug when iccdump'ing a profile
+that has duplicate tags has been fixed.
+
+Package contents:
+
+ icclib.zip ZIP archive of the following files
+ README.txt This file.
+ License.txt Important! - Permissions for use of this package.
+ icc.c Library source file.
+ iccstd.c Library source that uses stdio and malloc system calls.
+
+ icc.h Library include file. Note machine dependent defines.
+ Includes iccV42.h.
+ iccV42.h Standard ICC header file modified up to Version 4.2 spec.
+ iccdump.c Program that dumps ASCII description of a profile.
+
+ icclu.c Program that allows interactive or batch translation of
+ color values though a profile.
+
+ icctest.c Basic library tag Read/Write example and regression test
+ code.
+
+ lutest.c Color lookup regression test code, and example for creating
+ color profiles.
+
+ iccrw.c Source code skeleton for reading and then re-writing a
+ profile.
+
+ Jamfile JAM style "makefile" see
+ http://www.perforce.com/jam/jam.html
+
+ Makefile Generic style makefile. Edit this to select the appropriate
+ system makefile rules.
+ Makefile.IBMNTMakefile ruleset for Windows NT using the IBM compiler.
+ Makefile.OSX Makefile ruleset for Mac OSX environment.
+ Makefile.UNIX Makefile ruleset for Linux style environment.
+
+ Makefile.WNT Makefile ruleset for Windows NT using the Microsoft Visual
+ C++ compiler.
+
+Style
+
+For handling convenience, I have included all the library source code in
+two files. The down side is that they are both hard to read and navigate
+through. The code could do with some cleaning up and rearrangement, to make
+clear the distinction between public and private elements. (C++ would help
+here, but is less portable.) The code attempts to be ANSI C compliant,
+written in an object oriented style. A tutorial on how to use the library
+would also be a good thing !
+
+The best way to learn how to use the library, is to take a look at
+icctest.c, lutest.c and iccrw.c. The first is used to test writing and
+reading to every type of element, with every possible variation of usage.
+You will need a copy of the ICC spec. handy to understand what it all
+means. The second source file specifically creates and then tests various
+types of profiles, including monochrome, matrix and Lut style profiles. The
+last is a source code skeleton, that reads a profile completely into
+memory, and then writes it out again to a different file.
+
+With the release of version 2.00 of icclib, the library is now as useful as
+it is likely to be, allowing convenient color conversion between PCS
+(profile connection spaces, either XYZ or Lab) and device specific color
+spaces. The library does not attempt to be a complete color management
+system however, lacking profile creation and linking functionality. Icclib
+is part of the Argyll CMS, which does attempt to be a complete color
+management system. Argyll can be used as a more realistic example of the
+use of icclib. I plan at some stage to upgrade icclib to be compatible with
+the recently released ICC V4 spec., but will probably get around to this
+sometime after the next major release of Argyll.
+
+I welcome feedback, positive or negative, so please mail me at
+
+ Graeme at argyllcms dot com
+
+Graeme Gill