ColorLab Reference Manual
ColorLab Version: 2.8
1 Introduction
ColorLab was designed for internal testing, debugging and developing and is always a
’project in work’. It contains many tools and functions to work with colorimetric and spectral
measurement data. The public version of ColorLab provides a basic set of tools and some
additional tools for special purposes that we explitely want to give to the public. For Pro-
fileMaker owners more functionality is provided and automatically activated when ColorLab
detects that a ProfileMaker dongle is attached to your computer. Yet more functions exist
but are not available outside of our labs.
2 Concept
ColorLab is working on documents, which can be loaded, modified and saved. A document
is a set of colors based on pixels (images) or color patches. The list of supported image
file formats includes JPEG and TIFF and perhaps more. Colorpatches are stored in ASCII
text files that are used by ProfileMaker and similar applications to store and excange color
(measurement) data.
The functions of ColorLab divide roughly into three categories, each having an own menu
in the menu bar:
• Filters are comparable to PhotoShop filters. They apply to the current document and
normally transform the document content. Mode changes are implemented as filters
as well. Filters can also add or remove data or can convert between raster image
data and spot colors.
• Tools act on the current document, but are no filters. A common case are informa-
tional functions like histogram display. However, some tools would logically fit into the
filter category as well.
• Special tools are independent from the current document or apply to multiple docu-
ments.
LOGO ColorLab 1
3 Document Windows
The document window shows the data type (aka color space), the number of patches/pixels
and the values of the color under the mouse cursor (CIE-Lab D50/2◦ for spectral data).
• The last value (d=...) is the delta to the current reference color. You may set a color
to reference with ¡Option¿-click.
• You may disable the pipette function by pressing ¡Option¿. Doing this you may move
the mouse out of the window without changing the focussed patch.
• Double clicking opens a modal dialog where you can edit the color values. For spectral
data a window will be opens showing the spectral distribution.
• Patches are selected and deselected by clicking while presssing the Control key. If
the set of selected patches forms a rectangle (ie one or more rows or columns), it
can be moved using the mouse. You get no visual feedback while moving, and the
Undo command does not work for move operations. Clicking somewhere outside of
the selected area clears the seletcion.
• When you drop a file into a document window, that file is opened and replaces the
current content of the window without asking for confirmation.
• Most functions will work on images as for sets of color patches!
• Tab key toggles (nearly) full screen view
LOGO ColorLab 2
4 File Menu
As the data might contain very sensitive data, there is NO Save function overwriting an
opened file for security reasons. You have to use Save As to explicitly overwrite files.
4.1 New
Opens an empty document window.
4.2 Open
Reads a document from a file. If the file is one of the supported raster image formats (TIFF,
JPEG, PNG), the document is pixel based. If the file is a text file in the IT8 like format which
is used by other LOGO applications for reference ansd measurement data, or if it is CxF,
the document will contain color patches. Note that ColorLab has no native document file
type.
4.3 Open Special
All files in the folder ’OpenSpecial’ in the ColorLab folder will be displayed in the submenu
Open special. Use this for frequently used documents.
4.4 Open Recent
Recently opened files appear here.
4.5 Close
Closes the front window. Pressing ¡Option¿ will close all windows.
LOGO ColorLab 3
4.6 Save as
Saves the front window in the standard file file format. (TIFF for images, ASCII for color
patches and spectral data).
4.7 Export
Saving in different formats (ASCII text, CxF or TIFF). Not available for image data.
4.8 Info
Gives information on the front document. If the document is a testchart, the number if rows
can be changed.
4.9 Revert
Reloads the last saved version.
4.10 Duplicate
Open a new document with a duplicate of the data.
4.11 Switch to reference
If the current document contains both measurement and reference data, switches to the
reference data (and looses the measurement data).
4.12 Quit
Enjoyed?
LOGO ColorLab 4
5 Edit Menu
5.1 Undo
Undoes the last (significant) change on the front window. All filter actions and most other
modifications can be undone. Repeated Undo switches back and forth.
5.2 Cut, Copy, Paste
Cut and Copy act on the selected patches. The data is hold int the clipboard as ASCII text
in an IT8-like format and can thus transferred from/to text editors. Cut and Copy have no
effect on pixel based documents (but Paste has). In dialogs with edit text items CopyPaste
will work as usual.
5.3 New Patches
Replaces the document content by a specified number of new patches.
5.4 Add One Patch
Adds one patch.
5.5 Delete
Removes the selected patches.
5.6 Rename
Lets you enter a name for the selected patch.
LOGO ColorLab 5
5.7 Instrument Configuration
All Tools using measurement devices use this configuration.
5.8 Settings
• Image limit: The size in both dimensions, to which large images are downscaled when
loaded.
6 Filter Menu
6.1 Switch to filter
Brings the filter of the front document to the front.
6.2 Measure
Measure the testchart with the configured device. If it is disabled, please check the mode
of the front window and the device configuration.
LOGO ColorLab 6
6.3 Mode menu
Converts between typical color types. Conversion between colorimetric data is based on
well known standard formulas. Conversions to/from device dependant type are reasonable
default conversions. If you need to convert between device specific data, use the ICC
transformastion filters. Conversion to/from density are estimated.
6.4 Colorimetry menu
Filters in this menu have in common that they act on colorimetric color data (Lab, XYZ, ...)
and that they do not change the color space.
6.4.1 Colorimetric Interpretation
Measurement devices give us absolute measurement data. Dependant of the use of the
data there are different interpretations:
Relative lightness scales the data in XYZ, so that the lightness of the ’whitest’ patch will
match Y=L=100.
Relative white scales the data in XYZ, so that the ’whitest’ patch will match white.
Relative black scales so that the darkest point of the data will match black (proprietary).
Relative black&white does both.
Perceptual also scales to black and white using a proprietary technology matching the
human perception.
von Kries Chromatic adaption
LOGO ColorLab 7
6.4.2 CIE black white
Performs a scaling in XYZ so with predefined source and destination blackpoints/whitepoints.
6.4.3 CIE matrix
Performs an XYZ matrix conversion, defined by three color transformation points in Lab.
6.4.4 Gamut distance
Calculates the distance of each patch to the gamut border of a second testchart. The result
is a gray testchart, the gray values are representing the distance to the gamut border in the
direction of the gamut center. All colors inside of the gamut have the distance 0.
LOGO ColorLab 8
6.4.5 Real Colors
Filters all real colors, that is all colors where the xy representation lies inside the so called
show sole.
6.5 ICC Profile conversion
Performs Color transformations based on ICC profiles. This item replaces all the items
previousely found under the ICC menu. You can choose
• A source (input) profile
• A destination profile (optional)
• A soft proof profile (optional)
• One or two rendering intents
• The CMM to be used (either LogoSync or the OS specific)
LOGO ColorLab 9
• The quality. With LogoSync, this parameter decides if a link table is to be used to
speed up operation.
6.6 Others
6.6.1 Find region
Searches for all colors in a region around a a reference color. Defining the range as a
single values will search inside its radius. You may also define a value for each component
(components with negative values will be ignored). Example: You want to search for all
colors in an Lab testchart where a,b are inside [-5,5], L should be ignored. You have to
enter ’0 0 0 ’ as reference and ’-1 5 5’ as distance.
6.6.2 UPN calculation
For each component you may enter an UPN expression. See UPN Calculator (8.6) for
details. The color values are referred to as x0, x1 and so on or as letters that identify the
respective quantity, eg L, a, b. You can also access the values of another source with y0 etc.
The example acts on Lab colors, divides L by 2 and swaps a and b, for whatever reason.
LOGO ColorLab 10
Easy when you are used to UPN otherwise forget it...
LOGO ColorLab 11
6.6.3 Edit colors
I hope you will manage it without help.
6.6.4 Matrix conversion
Performs a 3x3 matrix conversion defined by three transformation points. Similar to CIE Ma-
trix (6.4.3), but applies to any 3-channel color space and the anchor points are interpreted
in that color space (not neccessarily Lab).
6.6.5 Linearization
Performs a linearization based on a linearization data file. You can create such a file from
measured data using the Testcharts2Curves tool (??).
LOGO ColorLab 12
6.6.6 Normalize spectral emission
Scales spectral data so, that the Y value will be 100, when the data is converted to XYZ.
Needed because emission data often comes randomly scaled.
6.7 Conversion
Filters in the Conversion menu typically convert between data types using special methods
(unlike mode changes, which are standard conversions).
6.7.1 CIE colors
Transformation from spectral data to CIE (and density). You may enter Illumination (also
file based custom illumination!) and Observer.
6.7.2 Spectrals
Calculates spectral data, which converts (nearly) to the original colors. The spectral data is
of course not uniqely determined. In this model, it is a combination of three basic spectral
curves. You can choose between a few sets of basic curves.
LOGO ColorLab 13
6.7.3 Separation
Separates CMY to CMYK.
6.7.4 MultiColorSeparation
This filter allows converting from any colorspace (CMY,RGB,CMYK recommended) to mul-
tichannel colors. You have to define the colors of the colorants. You may do this in different
color spaces, in general you will use the Lab measurement values of the inks. You may
easily switch colors on/off using the checkboxes, the filter will use all checked colors in their
LOGO ColorLab 14
order of appearance.
Remarks:
1. The first three colors (primaries) will be mapped to the CMY(K) primaries of the
source color, so that separating CMY(K) colors to multicolors will not touch the primary
curves. Example: CMY (50,0,0) -¿ CMYRG (50,0,0,0,0) Attention: The consequence
of this great feature is, that your primaries have to match cyan-magenta-yellow, even
in that sequence (MultiColorSeparation from CMY to CYMRG -note the exchange of
M and Y- will fail)!
2. Leaving ONE enabled color field completely blank will use this channel as black chan-
nel. Separating CMYK-¿Multichannel will use this channel to pass the black.
3. All additional colors (means all colorants after the first three ones) will only be used
close to the gamut border of the primaries. This ensures maximum quality inside of
the ’standard’ gamut.
4. Extracolors will be used in dependance of their hue, so their maximum might not
appear where you expect it.
5. If you use a red color as an extracolor, do not expect to find 100
Example: You have a output system with the extra color red and green and want to take
advantage of them even for CMYK input:
• Measure your inks cyan,magenta,yellow,red and green.
• Enter the Lab values for C,M,Y into the color fields 1,2,3.
• Leave field 4 blank to bypass black as fourth channel.
• Enter the Lab values of red and green into the color fields 5 and 6.
LOGO ColorLab 15
• Enable the colors 1-6.
• Start the filter.
• You will get a ’6CLR’ testchart (displayed in gray), the patches contain the percentage
of each colorant to be printed.
6.7.5 MultiColor2CIE
As it is hard to read the values of the multicolors you may convert from multichannel to CIE
to get a rough preview. Just enter the Lab values of the colorants into the fields. Often they
are the same as the Lab values you entered in the ’MultiColorSeparation’ (except black).
The filter will do a simple transformation using a linearized, subtractive mixing method
based on XYZ. Note that an exact transformation from multichannel to CIE requires much
more information than the primaries. If you have a valid ICC-Profile for your multichannel
data, you may use the ICC filter methods for transformation. (Unfortunately most Multi-
ChannelProfiles I saw are of very, very poor quality. I hope I do it better some day!) Hint:
You may use this filter also for CMY and CMYK! Example: You want to get a preview of the
multichannel testchart from the example of the MultiColorSeparation (see above).
• Enter the values of cyan,magenta,yellow,black,red and green into the fields (in this
sequence!). Note that you should enter the Lab measurement values for black!
• Start the filter
• You will get a CIE based testchart containing Lab values for each patch. Of course,
this testchart will be displayed in color!
LOGO ColorLab 16
6.8 Layout
Filters in the Layout menu change the layout of testcharts or convert between testcharts
and raster images or create new testcharts and images.
6.8.1 Swap rows/columns
It does what it says.
6.8.2 Mirror
Mirrors left to right and vice versa. Combine it with Swap rows/columns to mirror vertically.
6.8.3 Delete Near Patches
Sets all patches to white that are inside of the radius of a patch from another testchart.
Used to delete nearly redundant patches when generating new testcharts.
6.8.4 Select Patches
Replaces the color values of each patch by that of the nearest neighbour that can be found
in an external document, which must be the same color space. You have to specify this
document under Source. If you specify in addition a Destination, the patches are taken
from there. When it is done, it prints the maximal deviation found when searching for the
neares neighbour.
This tool is commonly used to extract subsets of measurement data from a large testchart,
where the subset is defined by a smaller testchart. The current document defines the
smaller testchart, the source file defines the larger testchart, the destination file defines
the measurement data that belongs to the large testchart. The maximum deviation should
be less then 0.01. If it is larger, the small testchart is not a subset of the large one, and
you know better then me what you want. If the data is intended as input for ICC color
management, you may combine this with the 2nd use described below.
Another use is to eliminate small deviations which can occur after layout changes of testcharts
via image file formats. The newly layouted testchart is the current document and the original
layout is the source file.
LOGO ColorLab 17
6.8.5 Add calibration colors
Extends a testchart by a frame of calibration colors. These might be evaluated by are more
intelligent tool.
6.8.6 Remove calibration colors
Removes frame patches.
6.8.7 Chaotify
Shuffles patches around so that vertically neighboured patches differ largely. Needed for
gapless i1 targets.
6.8.8 Testchart Standard
Converts color patches to an image format containing space between the patches, a dotted
border,...
6.8.9 Testchart Strips
Converts to an image format for the stripreader DTP41.
6.8.10 Testchart Define
A more elaborated testchart generator for different measurement instruments.
LOGO ColorLab 18
6.8.11 Spot colors
Resamples images and spot color data to a different resolution. Only works for rectangular
data.
6.8.12 Image
Resamples to pixel based data. Only works for rectangular data.
7 Tools Menu
7.1 IT8 to Rect Format
As the IT8 formats (input and output targets) are not rectangular, you cannot not easily save
them in TIFF format. Use this tool to fill the gaps with gray!
7.2 Sort
Sorts the patches by their components (¡Option¿ sorts inverse).
LOGO ColorLab 19
7.3 3D View
Shows the data in 3D. You may rotate the data using the mouse.
7.4 Show gamut
Shows the colors in ab, uv and xy diagrams.
LOGO ColorLab 20
7.5 Show Histogram
Shows the histograms for the components.
7.6 Show Redundance
Marks (selects) duplicate patches. Helpful when creating and merging testcharts. To re-
move reduncancies, apply the Delete command on the selected patches.
7.7 Calc Neighbour Distance
Calculates the distance between vertical neighbours and replaces the content with gray
patches which reflect the distance. Logically, the column length reduces by one.
7.8 ICC-profile statistics
Calculates a statistic on the profile integrity (perceptual rendering). Press ¡Option¿ for
absolute rendering.
LOGO ColorLab 21
8 Special Menu
8.1 Color Calculator
Transformation between common CIE color spaces and some color appearance models.
8.2 Handy measure tool
Subject to change Connects to the measurement instrument (according to your device
configuration) and takes single measurements, which you can either perform by presing the
Measure button or by pressing the button on the instrument if it has one. The measurement
data is sent to the current document (or the one that was last current) which contains CIE
or spectral data. The window displays the name of the document where the data will go to.
LOGO ColorLab 22
8.3 Spot Measuring
Measures and compares colors with the configured instrument.
8.4 New Log-Window
Opens a window logging the patch values when you click on a patch. This function is not
available in the Windows version, but the logging output goes always into the main window.
LOGO ColorLab 23
8.5 New Graphic Window
Opens a window that can displays vector graphics. Some tools produce graphics in the
topmost graphic window.
8.6 UPN-Calculator
Powerful calculator if you are confirm to UPN notation. It’s somehow like the PostScript
language, with a stack and operators. This one also supports binary,octal and hexadecimal
format WITH PUNCTATION!!!
Example: ”d4.5 h1.a pow b10 /” calculates 4.51.625 /2
There is also a filter version of the UPN calculator which lets you directly apply expressions
to color data (see 6.6.2).
LOGO ColorLab 24
8.7 Function plotter
Under construction
8.8 Gamma Tester
A simple tool to determine the gamma of your display.
8.9 Color Dependancy
For each color, a point at (x, y) is drawn, where x is the value of the selected channel of the
color in the first document and y is the same for the second document. Use it to examine
dependancies/correlations between the components of different data sets.
8.10 Calibration Tester
Displays the status of the display systems gamma curves and lets you save them.
LOGO ColorLab 25
8.11 Averaging
Averages several testcharts of the same format. See Profilemaker documentation for de-
tails.
LOGO ColorLab 26
8.12 Comparing
Opens a window where you can switch between the open documents giving you statistics
instantly. (Similar to Compare with). See Profilemaker documentation for details.
8.13 Plug-Ins
Proprietary.
9 Windows Menu
You may switch between all nonmodal, named windows using this menu.
LOGO ColorLab 27
10 Automating
10.1 LUA
Beginning with versions around 2.8.6, ColorLab supports the language LUA. LUA is an
interpreted programming language with a syntax similar to C, though not identical to C.
LUA is Copyright 2003 Tecgraf, PUC-Rio.
See www.lua.org for details and documentation.
From within a LUA program you can access and modify ColorLab objects, like documents
and colors. A document (or a document window) is represented by a userdata type. A color
is represented by a table (kind of array in LUA) of numbers. Color spaces are identified as
strings, for instance ¨’CMYK¨’ or ¨’Lab”’. A color patch in a document is identified by it’s index.
10.1.1 currentdoc
Usage: doc = currentdoc()
Returns the currently active document.
10.1.2 gettitle
Usage: title = gettitle(doc)
returns the title of a document as a string.
10.1.3 getdatatype
Usage: datatype = getdatatype(doc)
returns the color space aka data type of a document.
10.1.4 getcount
Usage: n = getcount(doc)
LOGO ColorLab 28
returns the number of color patches in a document.
10.1.5 getchannels
Usage: n = getchannels(doc) or n = getchannels(datatype)
returns the number of channels of a document’s color space or of a color space.
10.1.6 settitle
Usage: settitle( doc, title)
Sets the title of a document.
10.1.7 getcolor
Usage: getcolor( doc, i, c)
Returns in c the values of the patch with index i.
10.1.8 setcolor
Usage: setcolor( doc, i, c)
Sets the values of the patch with index i.
10.1.9 getselection
Usage: state = getselection( doc, i
Returns a boolean that indicating the selection state of the patch with index i.
10.1.10 setselection
Usage: setselection( doc, i, state)
LOGO ColorLab 29
Selects or deselcts the patch with index i.
10.1.11 newdoc
Usage: doc = newdoc( datatype, count, height [,title])
Creates a new document. If title is specified, a window is opened, otherwise not.
10.1.12 doc
Usage: doc = finddoc( title)
Returns a document with that title.
10.1.13 replacedoc
Usage: replacedoc( old, new)
Replaces the content of a document. Note: All references to old become invalid. Typically,
you use this function if you previousley created a new doc without a window.
10.1.14 getname
Usage: name = getname( doc, i)
returns the name of the patch with index i.
10.1.15 setname
Usage: setname( doc, i, name)
Sets the name of the patch with index i.
10.1.16 logoscript
Usage: logoscript( text)
LOGO ColorLab 30
Executes a LogoScript text. Hands off!
10.1.17 menucmd
Usage: menucmd( name)
Submits a mouse click on the menu item with that name.
10.1.18 open
Usage: open( filename)
Opens a document from that file.
10.1.19 export
Usage: export( doc, filename)
Saves the document into a file.
10.1.20 close
Usage: close( doc)
Closes a document.
11 Problems
This section lists known bugs and other unexpected or unsatisfactory features.
11.1 Cancelling a filter clears the undo buffer
That means, when you open a filter dialog on a document which has been modified before
and is thus ”undoable”, and you cancel the filter, you can no longer undo the previous
action. The reason is that the filter - though cancelled - occupies the undo buffer.
LOGO ColorLab 31
11.2 Real Colors
The tolerance value isn’t considered correctly in the Real Colors filter (6.4.5).
11.3 Log Window disappears
(Windows version only) Sometimes the log window disappears and is replaced with a uni-
form gray area.
11.4 No true 16 bit support for raster images
ColorLab can read 16 bit images, but it converts the data internally into 8 bit when it loads
an image.
11.5 ColorLab is not a full featured image processor
It has no optimized display algorithms and no memory management in order to handle large
images. One consequence is that large images are downscaled to a limit of 800 times 800
when they are loaded. You can change the limit in the Settings dialog. You can however
create images of any size in ColorLab.
Another consequence is that most filters are slow when applied to images.
11.6 Poor handling of reference data
When you have opened open a file that contains measurement as well as referecne data
(eg CMYK values), you can use Switch to Reference to get the reference values, but that’s
it. This is the minimum functionality needed so that you have a chance to get the reference
values at all without hacking. Note that all functions that impact the layout (moving patches
around etc) have no knowledge about the existence of reference data...
LOGO ColorLab 32