Read.me for release 1.08
========================
THIS SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL MARTI MARIA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
OF THIS SOFTWARE.
The lcms library is now distributed under
GNU LESSER GENERAL PUBLIC LICENSE
See file COPYING. for details
This is the 7th. public release the engine. It has been tested
across several versions before, but it is possible some
bugs still arises. If so, sorry for the inconvenience, and
please feel free to submit any suggestion/solution (if you can
found it) at:
marti@littlecms.com
Note that the aesthetics of resulting colors are due only to
profiles, and not as consequence of the lcms package.
The main site for the package is located at
http://www.littlecms.com
or
http://www.lcms.coloraid.de
Looking forward the lcms project would grow in future, I will
welcome any contribution/optimization/enhancement.
Enjoy!
Profiling
=========
There is a new, separate library for building monitor and scanner
profiles in littlecms site. NOTE THAT THE PROFILERS LIBRARY IS
RELEASED UNDER GPL. You can reach the profiler construction set
on http://www.littlecms.com
New in ver 1.08
===============
Full hexachrome & 5 inks support. lcms can now restore RGB from HiFi images.
Improved portability. Now lcms runs on Alphas.
Multiprofile transforms: Joins more than two profiles in one transform, for sophisticated color flow schemes.
A set of conversion routines to pack/unpack Lab/XYZ encoded values.
Even more scanline formats, now supporting negatives and swap-first layouts
Polar form or Lab (LCh) conversion, and gamut clipping routines
CIECAM97s appearance model.
More precission on precalculated transforms, and a new mode of super-high resolution (48 grid points)
New low-level functions to create and save profiles
Support for new tags defined in icc spec addendums.
Gamut check does work even if adequate tag is not present.
Built-In Lab/XYZ/sRGB profiles.
VisualC++ can now build the lcms DLL
More compilers supported
Configuration
=============
All configuration is done by commenting/uncommenting a set
of toggles placed on the beginning of lcms.h
Normally, there is no need to touch anything. Only make sure
to set properly the NON_WINDOWS toggle if you are using the
engine in non MS-Windows environtments, and USE_BIG_ENDIAN if
your machine does use this convention. Remaining toggles does
control optimization degree.
ANSI C / C99
============
I have recived some complains about the claim lcms is written
in ANSI-C. The code is NOT ANSI C in the way you cannot drop
it directly to any ANSI C compiler and expect it will work on
first try. But if you would like to port anyway, first take a
look on lcms.h You should use the NON_WINDOWS toggle for activate
alternate defines. Syntax of code is very close to ANSI-C.
Check also USE_BIG_ENDIAN toggle if your target machine works
in such way.
Delphi
======
Delphi should also have the ability of compile the engine,
since it includes BC C 5.4 as a command-line version. So, in
theory, despite I have not been able to check it directly, it
should work. Delphi access to the engine can be easely
accomplished by using the DLL and the supplied unit LCMSDLL.PAS
See the Delphi directory for more details.
Kylix
=====
No interface for Kylix is done (yet!) but seems to be quite
easy to do. If you have interest on it, please drop me a note.
marti@littlecms.com
GCC
===
Thanks to Karl Heinz Kremer, since ver 1.06, lcms does compile
under gcc in linux environments. For compatibility sake, the
fixed point math primitives are implemented using floating point.
Obviously this can slow down the transforms. If your machine
does support the new __int64 or "long long" type, you can gain
speed by defining the USE_INT64 toggle. There is a separate tarball
holding the linux redistributable.
Other languages (windows)
=========================
Using the DLL, you could access the engine from almost any
language in Win32 environments.
If your compiler has IMPLIB.EXE import librarian, you can
generate your own lib by extracting entry points directly from
LCMS.DLL
If this fails, and your linker does accept .DEF files you can
try to include the definition file on linking step
LCMSDEF.DEF
About profiles
==============
The demo of this package includes some profiles for colorspace
conversions. I figure all of them are in public domain, but
since some contains copyright notice, I will enumerate here
the sources:
Sun Microsystems Java SDK (widely available)
Kodak public FTP site: ftp.kodak.com
ICM Stress demo from microsoft. www.microsoft.com
sRGB from sRGB site www.srgb.com
If you found some profile of these not to be in public domain,
please notify me. I will remove the offending profile as soon as
posible.
Additional files
================
ICC34.h is the header file the International Color Consortium
has posted for version spec 3.4
You can reach it at
http://www.color.org