LittleCMS2.1 tutorial
59 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
59 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

little CMS Engine http://www.littlecms.com How to use the engine in your applications by Marti Maria Ver 2.1 0BIntroduction 2 Table of Contents Introduction ........................................................................................................................................ 4 Documentation ............................... 5 What is new from lcms 1.x .............. 6 Requeriments .................................................................................................................................. 7 Include files ..... 7 Basic Concepts . 8 Source code conventions ................................................................................................................ 8 The const keyword .......................... 8 Basic Types ...................................................................................................................................... 9 Step-by-step Example ....................... 10 Open the profiles........................................................................................................................... 11 Identify the intended format of pixels .......................... 11 Create the transform ..................................................................................................................... 13 Rendering intents ...................... 13 Optimization .......................................................................................... ...

Informations

Publié par
Nombre de lectures 90
Langue English

Extrait



little CMS Engine http://www.littlecms.com

How to use the engine in your applications
by Marti Maria
Ver 2.1

0BIntroduction 2

Table of Contents

Introduction ........................................................................................................................................ 4
Documentation ............................... 5
What is new from lcms 1.x .............. 6
Requeriments .................................................................................................................................. 7
Include files ..... 7
Basic Concepts . 8
Source code conventions ................................................................................................................ 8
The const keyword .......................... 8
Basic Types ...................................................................................................................................... 9
Step-by-step Example ....................... 10
Open the profiles........................................................................................................................... 11
Identify the intended format of pixels .......................... 11
Create the transform ..................................................................................................................... 13
Rendering intents ...................... 13
Optimization .............................................................................................................................. 15
Apply the transform ...................... 15
Scanline padding ....................................................................................................................... 15
Scanline overlap ........................ 15
Finishing the color transform ........................................................................................................ 16
Special profile types .......................................................... 17
Embedded profiles ........................................................................................ 17
Device-link profiles ............................ 17
Named color profiles ..................................................... 19
Built-in profiles .............................................................................................. 21
On-the-fly profiles ..................... 22
Proofing ............................................................................................................................................. 26
Black point compensation ................. 28
Black preserving intents .................................................................................................................... 30
Error Logging ..................................................................................................................................... 31 0BIntroduction 3

Getting information from profiles ..................................................................................................... 33
Textual information ....................................................... 33
Profile header fields ...................................................................................... 34
Profile Directory ............................ 35
Profile capabilities ......................................................... 35
Reading tags .................................................................................................. 36
Writing tags ................................... 37
The linked tag feature ................................................................................................................... 37
Creating new profiles ........................ 37
Tone curves ....................................................................................................................................... 38
Pipelines and Multi Processing elements .......................... 40
Clut element .. 41
Matrix element .............................................................................................................................. 42
Curve set element ......................... 42
Additions and the processing element plug-in ............................................................................. 42
Helper functions ................................................................ 43
Colorimetric space conversions .................................................................... 43
Converting encoded values ........................................... 43
Linear Bradford Chromatic Adaptation ............................................................. 44
Color difference functions ................................................. 45
Delta-E metrics .............................................................. 45
PostScript generation ........................................................................................ 47
CIECAM02 .......................................................................... 49
CGATS parser ..................................................................... 52
Overview ....... 52
Memory management .................................................................................................................. 52
Additions ....................................... 52
Strict CGATS ................................................................................................... 53
Gamut boundary description ............ 54
Conclusion ......................................... 55

0BIntroduction 4

Introduction

Welcome to the Little Color Management System. With this library you can enable your
applications to use International Color Consortium (ICC) profiles. Little CMS does accept profiles
conformant with ICC 4.2 or below, and supports all features described in the ICC specification,
including addendums. Little CMS can operate with old V2 ICC profiles as well. The CMM does all
necessary adjustments and allows you to mix both kind of profiles.

This file has been written to present the Little CMS core library to “would-be” writers of
applications. It first describes the concepts on which the engine is based, and then how to use it to
obtain transformations, colorspace conversions and other color-related functionality. This
document doesn't even try to explain the basic concepts of color management. For a
comprehensive explanation, I would recommend the excellent color & gamma FAQs by Charles A.
Poynton:
http://www.poynton.com
For more details about profile architecture, you can reach the latest ICC specs on:

http://www.color.org

**PLEASE NOTE THAN Little CMS IS NOT AN ICC SUPPORTED LIBRARY**
I will assume the reader does have a working knowledge of the C programming language. This
doesn’t mean Little CMS can only be used by C applications, but it seems the easiest way to
present the API functionality. Little CMS 2 is meant to be portable to any C99 compliant compiler.

0BIntroduction 5

Documentation
Little CMS documentation is hold in three different papers. This one you are reading is the tutorial.
Its goal is to introduce the engine and to guide you in its basic usage. It does not, however, give
details on all available functionality. For that purpose, you can use the API reference, which gives
information on all the constants, structures and functions in the engine. The third document is the
plug-in documentation. It details how to extend the engine to fit your particular purposes. You
need some experience in the core API to write plug-ins, therefore, the plug-in API reference is
somehow more advanced that the remaining two.
Aside documentation, there are sample programs that you can explore. Those are located in the
“utils” folder. Those programs are also handy in isolation. This is the list of utilities, each one is
documented elsewere.
• TifICC
• JpgICC
• TransICC
• LinkICC
• TiffDiff
• psicc

0BIntroduction 6

What is new from lcms 1.x
First obvious question is “why should I upgrade to Little CMS 2”. Here are some clues:
• Little CMS 2.xx is a full v4 CMM, which can accept v2 profiles. Little CMS 1.xx was a v2
CMM which can deal with (some) V4 profiles. The difference is important, as 2.x handling
of PCS is different, definitively better and far more accurate.
• It does accept and understand floating point profiles (MPE) with DToBxx tags. (Yes, it
works!) It has 32 bits precision. (lcms 1.xx was 16 bits)
• It handles float and double formats directly. MPE profiles are evaluated in floating point
with no precision loss.
• It has plug-in architecture that allows you to change interpolation, add new proprietary
tags, add new “smart CMM” intents, etc.
• Is faster. In some combinations, has a x 6 throughput boost.
• Some new algorithms, incomplete state of adaptation, Jan Morovic’s segment maxima
gamut boundary descriptor, better K preservation…
• Historic issues, like faulty icc34.h, freeing profiles after creating transform, etc. All is
solved.
Little CMS 2 is almost a full rewrite of 1.x series, so there is no guarantee of backwards
compatibility. Having said this, if your application doesn’t make use of advanced features,
pr

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents