This is great! FYI, The existing ImageMagick package could also be  
linked against LCMS.

On Jan 31, 2008, at 7:24 PM, John Fischer wrote:

> PSARC,
>
> I am sponsoring this fast track for Stefan Teleman from the SFW group.
> The case materials contain this proposal.  I have set the timeout for
> Thursday, February 7th, 2008.
>
> This project proposes to integrate the LCMS [ Little Color Management
> System ] within a Patch release of Solaris.  It implements the
> International Color Consortium's ICC.1:2004-10 Specification.
>
> Thanks,
>
> John
>
> Including LCMS [ Little Color Management System ] with Solaris
>
> Stefan Teleman <Stefan.Teleman at Sun.COM>
> 29 January 2008
>
> 1.    Summary and motivation
>
>       LCMS [Little CMS] [1] is a Color Management System implementing
>       the International Color Consortium's ICC.1:2004-10 Specification.
>       [2]
>
>       LCMS implements fast and efficient colorspace transforms between
>       different ICC Profiles. Its features include full multicolor
>       support, Black color preservation in CMYK <-> CMYK transforms,
>       Virtual Gray <-> RGB Profiles, built-in ICC Profiles support,
>       ICC Profile writing, Specialized Virtual Profiles, and Ink
>       Limiting.
>
>       An ICC Profile is a standardized means of encoding color definitions
>       and calibrations. Conversion between different ICC Profiles is
>       usually achieved by means of a Profile Connection Space. A Profile
>       Connection Space is a mapping between two Colorspaces [ for
>       example, RGB and CMYK ]. An ICC Profile may define several
>       Colorspace mappings, thereby allowing for the closest possible
>       color match.
>
>       A competing alternative to the ICC.1:2004-10 Specification has
>       been proposed by OpenEXR. [5]
>
>       ICC Profile [6] and Colorspace information may be encoded within
>       each graphics file. This approach is currently in use by some of
>       the most popular graphics file formats: TIFF, JPEG, PNG, MNG, EPS,
>       PDF, SVG.
>
>       The inclusion of LCMS in Solaris will add ICC Profile and Color
>       Management capabilities to those graphics file formats supporting
>       such facilities.
>
>       The "Little" in LCMS stands for "small overhead".
>
>       This case seeks Micro/Patch release Binding.
>
> 2.    Technical issues
>
>       2.1.    Key objects
>
>       /usr/bin/icctrans
>       /usr/bin/icc2ps
>       /usr/bin/icclink
>       /usr/bin/jpegicc
>       /usr/bin/tifficc
>       /usr/bin/tiffdiff
>       /usr/bin/wtpt
>
>       /usr/include/lcms/icc34.h
>       /usr/include/lcms/lcms.h
>
>       /usr/lib/liblcms.so.1.0.16
>       /usr/lib/liblcms.so.1 -> /usr/lib/liblcms.so.1.0.16
>       /usr/lib/liblcms.so -> /usr/lib/liblcms.so.1.0.16
>       /usr/lib/pkgconfig/lcms.pc
>
>       /usr/lib/${MACH64}/liblcms.so.1.0.16
>       /usr/lib/${MACH64}/liblcms.so.1 -> /usr/lib/${MACH64}/liblcms.so. 
> 1.0.16
>       /usr/lib/${MACH64}/liblcms.so -> /usr/lib/${MACH64}/liblcms.so.1.0.16
>       /usr/lib/${MACH64}/pkgconfig/lcms.pc
>
>       /usr/share/man/man1/icc2ps.1
>       /usr/share/man/man1/icclink.1
>       /usr/share/man/man1/icctrans.1
>       /usr/share/man/man1/jpegicc.1
>       /usr/share/man/man1/tifficc.1
>       /usr/share/man/man1/wtpt.1
>
>       This case proposes the integration of LCMS Version 1.17.
>
>       This version of LCMS [1.17] is thread-safe, 64-bit clean and
>       largefile aware. The 64-bit LCMS library will be delivered
>       with this Integration.
>
>       By default, LCMS installs its header files under /usr/include.
>       We propose changing this default installation location to a more
>       suitable /usr/include/lcms, for the purpose of avoiding namespace
>       pollution in /usr/include.
>
>       LCMS provides documentation in UNIX Manual format for Section 1
>       (User Commands) of the Manual only. It does not provide a
>       Section 3 Manual page for the LCMS API; the documentation for
>       the LCMS API is provided in plaintext format.
>
>       The plaintext documentation will be used as basis for a new
>       lcms.3 Manual Page, which will be added to, and included with,
>       this Integration.
>
>       2.2.    Programmatic facilities
>
>       Access to LCMS' API is provided by one header file, lcms.h:
>
>               #include <lcms.h>
>
>       A basic application using the LCMS API will, generally, perform
>       the following steps:
>
>       /* 1. declare an input CMS Profile and an output CMS Profile */
>
>       cmsHPROFILE hInProfile;
>       cmsHPROFILE hOutProfile;
>
>       /* 2. declare a Colorspace Transform */
>
>       cmsHTRANSFORM hTransform;
>
>       /* 3. Initialize the input and output CMS Profiles */
>
>       hInProfile  = cmsOpenProfileFromFile("HPSJTW.ICM", "r");
>       hOutProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r");
>
>       /* 4. Initialize the Colorspace Transform */
>
>       hTransform = cmsCreateTransform(hInProfile,
>                                       TYPE_BGR_8,
>                                       hOutProfile,
>                                       TYPE_BGR_8,
>                                       INTENT_PERCEPTUAL, 0);
>
>       /* 5. Perform Colorspace Transformations */
>
>       int i;
>
>       for (i = 0; i < SOME_MAX_VALUE_WE_HAVE_DETERMINED; i++) {
>               cmsDoTransform(hTransform,
>                               YourInputBuffer,
>                               YourOutputBuffer,
>                               YourBuffersSizeInPixels);
>       }
>
>       /* 6. Cleanup Colorspace Transform */
>
>       cmsDeleteTransform(hTransform);
>
>       /* 7. Cleanup Input and Output Profiles */
>
>       cmsCloseProfile(hInProfile);
>       cmsCloseProfile(hOutProfile);
>
>       2.3.    Language Bindings
>
>       LCMS is written in ANSI C. The canonical LCMS distribution
>       also includes Python bindings for LCMS, written in C++. The
>       Python LCMS bindings will be included with this Integration,
>       and will be installed in the canonical Python 'site-packages'
>       directory location.
>
>       2.4.    Documentation
>
>       The canonical LCMS release contains documentation in UNIX
>       Manual format, for the User Commands Section (1) only. This
>       documentation set will be included with this Integration.
>       In addition, a Section 3 Manual page [ lcms.3 ], detailing
>       LCMS's API will be provided with this Integration.
>
> 3.    Interfaces
>
>       3.1.    Interface stability
>
>       LCMS's development and release schedules are controlled by
>       a group of developers external to SMI. [1] Although LCMS
>       attempts to maintain API and ABI compatibility between Major
>       releases, no explicit guarantee of compatibility is provided
>       by the LCMS developers.
>
>       3.2.    Imported interfaces
>
>       LCMS imports interfaces from the Standard C Library, Standard
>       Math Library and the POSIX Threads Library. The Python LCMS
>       shared module imports Interfaces from the C++ run-time Library
>       [ libCrun.so.1 ]. In addition, the Python Binding shared module
>       also imports interfaces from the Python Library:
>
>       NAME                    STABILITY               NOTES
>
>       SUNWPython              External                PSARC/2005/532
>
>       3.3.    Exported interfaces
>
>       NAME                            STABILITY       NOTES
>
>       SUNWlcms                        Uncommitted     Package Name
>
>       /usr/bin/icctrans               Uncommitted     Executable Location
>       /usr/bin/icc2ps                 Uncommitted     Executable Location
>       /usr/bin/icclink                Uncommitted     Executable Location
>       /usr/bin/jpegicc                Uncommitted     Executable Location
>       /usr/bin/tifficc                Uncommitted     Executable Location
>       /usr/bin/tiffdiff               Uncommitted     Executable Location
>       /usr/bin/wtpt                   Uncommitted     Executable Location
>
>       /usr/include/lcms               Uncommitted     Include Directory
>       /usr/include/lcms/icc34.h       Uncommitted     Header file
>       /usr/include/lcms/lcms.h        Uncommitted     Header file
>
>       /usr/lib/liblcms.so.1.0.16      Uncommitted     Shared Library
>       /usr/lib/liblcms.so.1           Uncommitted     Symbolic Link
>       /usr/lib/liblcms.so             Uncommitted     Symbolic Link
>
>       /usr/lib/pkgconfig/lcms.pc      Uncommitted     Pkg-config Entry
>
>       /usr/lib/${MACH64}/liblcms.so.1.0.16    Uncommitted     Shared Library
>       /usr/lib/${MACH64}/liblcms.so.1 Uncommitted     Symbolic Link
>       /usr/lib/${MACH64}/liblcms.so   Uncommitted     Symbolic Link
>
>       /usr/lib/${MACH64}/pkgconfig/lcms.pc    Uncommitted     Pkg-config Entry
>
>       /usr/share/man/man1/icc2ps.1    Uncommitted     Manual Page
>       /usr/share/man/man1/icclink.1   Uncommitted     Manual Page
>       /usr/share/man/man1/icctrans.1  Uncommitted     Manual Page
>       /usr/share/man/man1/jpegicc.1   Uncommitted     Manual Page
>       /usr/share/man/man1/tifficc.1   Uncommitted     Manual Page
>       /usr/share/man/man1/wtpt.1      Uncommitted     Manual Page
>       /usr/share/man/man3/lcms.3      Uncommitted     Manual Page
>
> 4.    References
>
>       [1]     http://www.littlecms.com/
>       [2]     http://www.color.org/ICC1V42.pdf
>               http://www.color.org/icc_specs2.xalter
>       [3]     http://www.libmng.com/
>       [4]     http://sourceforge.net/project/showfiles.php?group_id=12272
>       [5]     http://www.openexr.com/
>       [6]     http://www.srgb.com/
>
>
> _______________________________________________
> opensolaris-arc mailing list
> opensolaris-arc at opensolaris.org


Reply via email to