Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > a09757cf7e287c7b4a85bae207244d5f > files > 98

argyllcms-0.70-0.1.Beta8.1mdv2008.1.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Argyll Usage Scenarios</title>
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
</head>
<body>
<h2><u>Typical usage Scenarios and Examples</u></h2>
Choose a task from the list below. For more details on alternative
options, follow the links to the individual utilities being used.<br>
<br>
Note that by default it is assumed that ICC profile have the file
extension <span style="font-weight: bold;">.icm</span>, but that on
Apple OS X and Unix/Linux platforms, the <span
 style="font-weight: bold;">.icc</span> extension is expected and
should be used.<br>
<h4><a href="#PM1">Profiling Displays</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PM1a">Adjusting and Calibrating
a
displays</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PM1b">Adjusting, calibrating and
profiling in one step<br>
</a><span style="font-weight: bold;"></span><span
 style="font-weight: bold;"></span><span
 style="text-decoration: underline;"></span></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PM2">Creating display test values</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PM3">Taking readings from a display</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PM4">Creating a
display profile</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"></span><a
 href="#PM5">Installing a
display profile</a></h4>
<h4><br>
<a href="#PS1">Profiling Scanners</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PS2">Types of test charts</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PS3">Taking readings from a scanner</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PS4">Creating a scanner profile</a></h4>
<h4><br>
<a href="#PP1">Profiling Printers</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PP2">Creating a print test chart</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PP3">Reading a print test chart
using an instrument</a></h4>
<h4> &nbsp;&nbsp;&nbsp; <a href="#PP4">Reading a print test chart
using a scanner</a></h4>
<h4> </h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PP5">Creating a printer profile<br>
</a></h4>
<h4>&nbsp;&nbsp;&nbsp; <a href="#PP6">Choosing a black generation curve</a></h4>
<h4><br>
<a href="#LP1">Linking Profiles</a></h4>
<h4><br>
<a href="#TR1">Transforming colorspaces of raster files</a></h4>
<br>
<hr style="width: 100%; height: 2px;">
<h3><a name="PM1"></a>Profiling Displays</h3>
Argyll supports adjusting, calibrating and profiling of displays using
one of a number of
instruments - see <a href="instruments.html">instruments</a> for a
current list.&nbsp; Adjustment and calibration are prior
steps to profiling, in which the display is adjusted using it's
screen controls,&nbsp; and then per channel lookup tables are created
to make it meet a well behaved response
of the desired type. The process
for creating a display profile is then similar to that of all other
output
devices. First a set of device colorspace test values needs to be
created to exercise the display, then these values need to be
displayed, while taking measurements of the resulting colors using the
instrument. Finally, the device value/measured color values need to be
converted into an ICC profile.<br>
<br>
<h3><a name="PM1a"></a>Adjusting and Calibrating Displays</h3>
The first step is to decide what the target should be for adjustment
and calibration.
This boils down to three things: The desired brightness, the desired
white point, and the desired response curve. The native brightness and
white points of a display may be different to the desired
characteristics for some purposes. For instance, for graphic arts use,
it might be desirable to run with a warmer white point of about 5000
degrees Kelvin, rather than the default display white point of 6500 to
9000 Kelvin. Some LCD displays are too bright to compare to printed
material under available lighting, so it might be desirable to reduce
the maximum brightness.<br>
<br>
You can run <a href="dispcal.html#r">dispcal -r</a> to check on how
your display is currently set up. (you may have to run this as <span
 style="text-decoration: underline; color: rgb(204, 51, 204);">dispcal
-yl -r</span> for an LCD display, or <span
 style="text-decoration: underline; color: rgb(204, 51, 204);">dispcal
-yc -r</span> for a CRT display with most of the colorimeter
instruments. If so, this will apply to all of the following examples.)<br>
<br>
Once this is done, <a href="dispcal.html">dispcal</a> can be run to
guide you through the display adjustments, and then calibrate it. By
default, the brightness and white point will be kept
the same as the devices natural brightness and white point. The default
response curve is a gamma of 2.2 on MSWindows and X11 systems, and 1.8
on Apple OSX systems. 2.2 is close to that of&nbsp; many
monitors, and close to that of the sRGB colorspace. <br>
<br>
A typical calibration that leaves the brightness and white point alone,
might be:<br>
<br>
<a href="dispcal.html">dispcal</a> -v TargetA<br>
<br>
which will result in a "TargetA.cal" calibration file, that can then be
used during the profiling stage.<br>
<br>
If the absolutely native response of the display is desired during
profiling, then calibration should be skipped, and the linear.cal file
from the "ref" directory used instead as the argument to the -k flag of
<span style="font-weight: bold;">dispread</span>.<br>
<br>
<b>Dispcal</b> will display a test window in the middle of the screen,
and issue a series of instructions about placing the instrument on the
display. You may need to make sure that the display cursor is not in
the test window, and it may also be necessary to disable any
screensaver and powersavers before starting the
process, although both <span style="font-weight: bold;">dispcal</span>
and <span style="font-weight: bold;">dispread</span> will attempt to
do this for you. It's also highly desirable on CRT's, to clear your
screen
of
any white
or bright background images or windows (running your shell window with
white text on a black background helps a lot here.), or at least keep
any bright areas away from the test window, and be careful not to
change anything on the display while the readings
are taken. Lots of bright images or windows can affect the ability to
measure
the black point accurately, and changing images on the display can
cause inconsistency in the readings,&nbsp; and leading to poor results.<span
 style="font-weight: bold;"></span> LCD displays seem to be
less influenced by what else is on the screen.<br>
<br>
If <span style="font-weight: bold;">dispcal</span> is run
without arguments, it will provide a usage screen. The <span
 style="font-weight: bold;">-c</span> parameter allows selecting a
communication port for an instrument, or selecting the instrument you
want to use,&nbsp; and the <span style="font-weight: bold;">-d</span>
option allows selecting a target
display on a multi-display system. On some multi-monitor systems, it
may not be possible to independently calibrate and profile each display
if they appear as one single screen to the operating system, or if it
is not possible to set separate video lookup tables for each
display. You can change the position and size of the test
window using the <span style="font-weight: bold;">-p</span> parameter.
You can determine how best to arrange the test window, as well as
whether each display has separate video lookup capability, by
experimenting with the <a href="dispwin.html">dispwin</a> utility. <br>
<br>
For a more detailed discussion on interactively adjusting the display
controls using <span style="font-weight: bold;">dispcal</span>, see <a
 href="dispcal.html#Adjustment">dispcal-adjustment</a>. Once you have
adjusted and calibrated your display, you can move on to the next step.<br>
<br>
Once you have calibrated and profiled your display, you can keep it
calibrated using the <a href="dispcal.html#u">dispcal -u</a> option.<br>
<br>
<h4><a name="PM1b"></a>Adjusting, calibrating and profiling in one step.</h4>
For more flexibility in creating a display profile, the separate steps
of creating characterization test values using <span
 style="font-weight: bold;">targen</span>, reading them from the
display using <span style="font-weight: bold;">dispread</span>, and
then creating a profile using <span style="font-weight: bold;">profile</span>
are used. If however, a simple matrix/shaper display profile is all
that is desired, <span style="font-weight: bold;">dispcal</span> can
be used to do this, permitting display adjustment, calibration and
profiling all in one operation. This is done by using the <span
 style="font-weight: bold;"><span style="font-weight: bold;">dispcal </span>-o</span>
flag:<br>
<br>
<a href="dispcal.html">dispcal</a> <a href="dispcal.html#v">-v</a> <a
 href="dispcal.html#o">-o</a> <a href="dispcal.html#p1">TargetA</a><br>
<br>
This will create both a TargetA.cal file, but also a TargetA.icm file.
See <a href="dispcal.html#o">-o</a> and <a href="dispcal.html#O">-O</a>
for other variations.<br>
<br>
<h4><a name="PM2"></a>Creating display test values</h4>
If the <span style="font-weight: bold;">dispcal</span> has not been
used to create a display profile at the same time as adjustment and
calibration, then the first step in profiling any output device, is to
create a set
of device colorspace test values. The important parameters needed are:
<br>
<ul>
  <li>What colorspace does the device use ?</li>
  <li>How many test patches do I want to use ?</li>
  <li>What information do I already have about how the device behaves ?</li>
</ul>
For a display device, &nbsp;the colorspace will be RGB. The number of
test patches will depend somewhat on what quality profile you want to
make, what type of profile you want to make, and how long you are
prepared to wait when testing the display.<br>
At a minimum, a few hundred values are needed. A matrix/shaper type of
profile can get by with fewer test values, while a LUT based profile
will give better results if more test values are used. A typical number
might be 200-600 or so values, while 1000-2000 is not an unreasonable
number for a high quality characterization of a display.<br>
<br>
To assist the choice of test patch values, it can help to have a rough
idea of how the device behaves. This could be in the form of an ICC
profile of a similar device, or a lower quality, or previous profile
for that particular device. If one were going to make a very high
quality LUT based profile, then it might be worthwhile to make up a
smaller, preliminary shaper/matrix profile using a few hundred test
points, before embarking on testing the device with several thousand.<br>
<br>
Lets say that we ultimately want to make a profile for the device
"DisplayA", the simplest approach is to make a set of test values that
is
independent of the characteristics of the particular device:<br>
<br>
<a href="targen.html">targen</a> <a href="targen.html#v">-v</a> &nbsp;<a
 href="targen.html#d">-d3</a> <a href="targen.html#f">-f500</a> <a
 href="targen.html#p1">DisplayA</a><br>
<br>
If there is a preliminary or previous profile called "OldDisplay"
available, and we want to try creating a "pre-conditioned" set of test
values that will more efficiently sample the device response, then the
following would achieve this:<br>
<u><br>
</u><a href="targen.html"> targen</a> <a href="targen.html#v">-v</a>
&nbsp;<a href="targen.html#d">-d3</a> <a href="targen.html#f">-f500</a>
<a href="targen.html#A">-A.8</a> <a href="targen.html#c">-cOldDisplay.icm</a>
<a href="targen.html#p1">DisplayA</a><br>
<br>
The output of <b>targen</b> will be the file DisplayA.ti1, containing
the device space test values, as well as expected CIE values used for
chart recognition purposes.<br>
<br>
<h4><a name="PM3"></a>Taking readings from a display</h4>
First it is necessary to connect your measurement instrument to your
computer, and check which communication port it is connected to. In the
following example, it is assumed that the instrument is connected to
the default port 1, which is either the first USB instrument found, or
serial port found. Invoking dispread so as to display the usage
information
(by
using a flag -? or --) will list the identified serial and USB ports,
and their
labels. If we created a calibration for the display using <a
 href="dispcal.html">dispcal</a>, then we will want to use this when we
take the display readings (e.g. TargetA.cal from the calibration
example)..<br>
<br>
<a href="dispread.html">dispread</a> <a href="dispread.html#v">-v</a> <a
 href="dispread.html#k">-k
TargetA.cal</a> <a href="dispread.html#p1">DisplayA</a><br>
<br>
<b>dispread</b> will display a test window in the middle of the screen,
and issue a series of instructions about placing the instrument on the
display. You may need to make sure that the display cursor is not in
the test window, and it may also be necessary to disable any
screensaver before starting the
process. Exactly the same facilities are provided to select alternate
displays using the <span style="font-weight: bold;">-d</span>
parameter, and an alternate location and size for the test window using
the <span style="font-weight: bold;">-p</span> parameter as with <span
 style="font-weight: bold;">dispcal</span>.<br>
<h4><a name="PM4"></a>Creating a display profile</h4>
There are two basic choices of profile type for a display, a
shaper/matrix profile, or a LUT based profile. They have different
tradeoffs. A shaper/matrix profile will work well on a well behaved
display, that is one that behaves in an additive color manner, will
give
very smooth looking results, and needs fewer test points to create. A
LUT based profile on the other hand, will model any display behaviour
more accurately, and can accommodate gamut mapping and different intent
tables. Often it can show some unevenness and contouring in the results
though.<br>
<br>
To create a matrix/shaper profile, the following suffices:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Display A"</a> <a href="profile.html#q">-qm</a>
<a href="profile.html#a">-as</a> <a href="profile.html#p1">DisplayA</a><br>
<br>
For a LUT based profile, where gamut mapping is desired, then a source
profile will need to be provided to define the source gamut. For
instance, if the display profile was likely to be linked to a CMYK
printing source profile, say "swop.icm", then the following would
suffice:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Display A"</a>
<a href="profile.html#q">-qm</a> <a href="profile.html#S">-S</a><a
 href="profile.html#S">
swop.icm</a> <a href="profile.html#c">-cpp</a> <a
 href="profile.html#d">-dmt</a>
<a href="profile.html#p1">DisplayA</a><br>
<br>
Make sure you check the delta E report at the end of the profile
creation, to see if the profile is behaving reasonably.<br>
If a calibration file was used with <a href="dispread.html">dispread</a>,
then it will be converted to a vcgt tag in the profile, so that the
operating system or other system color utilities load the lookup curves
into the display hardware, when the profile is used.<br>
<h4><a name="PM5"></a>Installing a display profile</h4>
Installing a display profile for your monitor is very operating system
dependent. On some systems it is not the operating system itself that
supports display profiles, but individual applications, or helper
programs.<br>
<br>
<br>
On <span style="font-weight: bold;">Microsoft Windows</span>, display
profiles are typically in one of the
following directories:<br>
<p>&nbsp;&nbsp;&nbsp; Windows Me and 98: C:\Windows\System\Color<br>
</p>
<p>&nbsp;&nbsp;&nbsp; Windows NT: C:\Winnt\system32\spool\drivers\color
</p>
<p>&nbsp;&nbsp;&nbsp; Window 2000 and XP:
C:\Windows\system32\spool\drivers\color</p>
<p>The profile can be associated with your display by using the Display
Property dialog, advanced settings, Color management tab. This in
itself does not cause the profile to be made use of anywhere in your
system.<br>
</p>
<p>If you are using Adobe Photoshop on your system, then you can tell
it to use your monitor profile by editing the appropriate registry key,
typically "My
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Color\Monitor\Monitor0", to
contain the name of the display profile, and then restart Photoshop
This is the simplest way of ensuring that the Adobe calibration loader
utility Adobe Gamma loads the video hardware lookup tables from the
vcgt tag, and
uses the profile as its display profile.<br>
</p>
<p>The adobe gamma utility can be told to use your profile, but the
procedure is slightly tricky: Open adobe gamma from photoshop (in the
Help-&gt;Color Management... menu item), select "Open Adobe Gamma", and
select the "Load.." button. Select your profile and "Open". Select "OK"
in the Adobe Gamma, it will then ask you to save it's modified version
of your profile under a different name. Chose a name for the modified
profile, and save it. Exit from Photoshop. Copy the profile you want to
use, over the modified profile that you saved in Adobe Gamma. (If you
don't do the last step, the profile Photoshop will be using will have
been modified in strange ways from what you intended.)<br>
</p>
<p>Other Microsoft Windows applications may come with
"Gamma/VCGT/RAMDAC/Video LUT"
loader utilities, consult their documentation and check your Start Menu
Startup folders. If you don't want to use any of these 3rd party
utilities, you can also use the <a href="dispwin.html">dispwin</a>
utility to do this for you, as it takes either a <a
 href="cal_format.html">.cal</a> or ICC file as an argument. The <a
 href="http://freshmeat.net/projects/xcalib/">xcalib</a>
utility could also be used.<br>
</p>
Newer version of Microsoft Windows (XP) have better ways of
handling this. For instance, try right clicking on the profiles icon,
and see if there is an "install profile" option, and there is a
Color Control Panel Applet for Windows XP available for
download from
Microsoft, which handles loading the profile vcgt tag into displays.<br>
<br>
<p>On <span style="font-weight: bold;">Apple OSX</span>, the display
profile are in one of the following
locations:<br>
</p>
&nbsp;&nbsp;&nbsp; /Network/Library/ColorSync/Profiles<br>
&nbsp;&nbsp;&nbsp; /System/Library/Colorsync/Profiles<br>
&nbsp;&nbsp;&nbsp; /Library/ColorSync/Profiles<br>
&nbsp;&nbsp;&nbsp; ~/Library/ColorSync/Profiles<br>
<br>
Generally you should only copy new profiles to either of the last two
locations, the former for profile you want to be available to all users
of a machine, and the latter, user specific location if you want the
profile to only be available to that user. You can then launch the
"System Preferences-&gt;Displays-&gt;Color" utility, to select the
profile as the one to use for your display. Note that the contents of
the description tag (the argument to the <span
 style="font-weight: bold;"><span style="font-weight: bold;">-D</span></span>
flag used with the <span style="font-weight: bold;">profile</span>
utility) will be used to identify the profile.<br>
<br>
<br>
On <span style="font-weight: bold;">Linux</span> and other <span
 style="font-weight: bold;">Unix</span> style systems, there is no
universally agreed location for ICC profiles yet,
although the following locations have been suggested at various times:<br>
<br>
&nbsp;&nbsp;&nbsp; /usr/share/color/icc<br>
&nbsp;&nbsp;&nbsp; ~/.color/icc<br>
&nbsp;&nbsp;&nbsp; /usr/local/share/Scribus/profiles<br>
<br>
and other programs may use other locations.<br>
&nbsp;&nbsp; <br>
If you want the display calibration to be loaded, you should consider
installing a utility to do so at startup, such as <a
 href="dispwin.html">dispwin</a>
or <a href="http://freshmeat.net/projects/xcalib/">xcalib</a>.<br>
<br>
Alternatively, the display profile can be installed following <a
 href="http://www.burtonini.com/computing/x-icc-profiles-spec-0.2.html">this
convention</a>, by using a utility such as <a
 href="http://packages.ubuntu.com/dapper/x11/xicc">xicc</a>, or using
Argyll's dispwin utility:<br>
<br>
&nbsp;&nbsp;&nbsp; dispwin -S <span style="font-style: italic;">profile.icc<br>
<br>
</span>to install the profile into the <span style="font-weight: bold;"></span>root
window _ICC_PROFILE property, and <br>
<br>
&nbsp;&nbsp;&nbsp; dispwin -L<br>
<br>
to use the property to set the display's Video LUTs to the contained
calibration curves.<br>
You can use the dispwin -d parameter in the usual way to select other
displays to store or load the calibration using the _ICC_PROFILE
property.<br>
<br>
<hr size="2" width="100%">
<h3><a name="PS1"></a>Profiling Scanners</h3>
Because a scanner is an input device, it is necessary to go about
profiling it in quite a different way to an output device. To profile
it, a test chart is needed to exercise the scanner response, to which
the CIE values for each test patch is known. Generally standard
reflection test charts are used for this purpose.<br>
<h4><a name="PS2"></a>Types of test charts</h4>
The most common and popular test chart for scanner profiling is the
IT8.7/2 chart. This is a standard format chart generally reproduced on
photographic film, containing about 264 test patches. The Kodak Q-60
Color Input Target is a typical example:<br>
<br>
<img src="Q60.jpg" alt="Kodak Q60 chart image" height="141" width="200">
<br>
<br>
Other popular charts are the GretagMacbeth ColorChecker DC and
ColorChecker SG charts:<br>
<br>
<img src="DC.jpg" alt="GretagMacbeth ColorChecker DC chart" height="122"
 width="200"> <img alt="ColorChecker SG" src="SG.jpg"
 style="width: 174px; height: 122px;"><br>
<br>
The GretagMacbeth Eye-One Pro Scan Target 1.4 can also be used:<br>
<br>
<img alt="Eye-One Scan Target 1.4" src="i1scan14.jpg"
 style="border: 2px solid ; width: 200px; height: 140px;"><br>
<br>
Also supported is the <a href="http://www.hutchcolor.com/hct.htm">HutchColor
HCT</a> :<br>
<br>
<img alt="HutchColor HCT" src="HCT.jpg"
 style="width: 182px; height: 140px;"><br>
<br>
<h4><a name="PS3"></a>Taking readings from a scanner</h4>
The test chart you are using needs to be placed on the scanner, and the
scanner needs to be configured to a suitable state, and restored to
that
same state when used subsequently with the resulting profile. The chart
should
be scanned, and saved to a TIFF format file. I will assume the
resulting
file is called scanner.tif. The raster file need only be roughly
cropped so as to contain the test chart (including the charts edges).<br>
<br>
The second step is to extract the RGB values from the scanner.tif file,
and match then to the reference CIE values.
To locate the patch values in the scan, the <b>scanin</b> utility
needs to
be given a template <a href="File_Formats.html#.cht">.cht</a> file
that describes the features of the chart, and
how
the test patches are labelled. Also needed is a file containing the CIE
values for each of the patches in the chart.<br>
<br>
<div style="margin-left: 40px;">For an IT8.7/2 chart, this is the <span
 style="font-weight: bold;">ref/</span><b>it8.ch</b>
file supplied with Argyll, and&nbsp; the manufacturer will will supply
an
individual or batch average file&nbsp; long with the chart containing
this
information, or downloadable from their web site.<br>
<br>
For the ColorChecker DC chart, the
<span style="font-weight: bold;">ref/ColorCheckerDC.cht</span> file
should be used, and there will be a ColorCheckerDC reference
file supplied by GretagMacbeth with the chart.<br>
<br>
For the ColorCheckerSG chart, the <span style="font-weight: bold;"><span
 style="font-weight: bold;">ref/</span>ColorCheckerSG.cht</span> file
should be used, and there will be a <span style="font-weight: bold;">ColorCheckerSG.txt</span>
supplied with the chart that contains the spectral reference
information. To convert this to a&nbsp; <span
 style="font-weight: bold;">ColorCheckerSG.cie</span> reference file,
follow the following steps:<br>
&nbsp;&nbsp;&nbsp;&nbsp; <a href="logo2cgats.html">logo2cgats</a>
ColorCheckerSG.txt ColorCheckerSG.ti3<br>
&nbsp;&nbsp;&nbsp;&nbsp; <a href="spec2cie.html">spec2cie</a>
ColorCheckerSG.ti3 ColorCheckerSG.cie<br>
<br>
For the Eye-One Pro Scan Target 1.4 chart, the <span
 style="font-weight: bold;"><span style="font-weight: bold;">ref/</span>i1_RGB_Scan_1.4.cht</span>
file should be used, and as there is no reference file accompanying
this chart, the chart needs to be read with an instrument (usually the
Eye-One Pro). This can be done using chartread,&nbsp; making use of the
chart reference file <span style="font-weight: bold;">ref/i1_RGB_Scan_1.4.ti2</span>:<br>
&nbsp;&nbsp;&nbsp; <a href="chartread.html">chartread</a> -n -a
i1_RGB_Scan_1.4<br>
and then rename the resulting <span style="font-weight: bold;">i1_RGB_Scan_1.4.ti3</span>
file to <span style="font-weight: bold;">i1_RGB_Scan_1.4.cie</span><br>
<span style="font-weight: bold;"></span><br>
For the HutchColor HCT chart, the <span style="font-weight: bold;"><span
 style="font-weight: bold;">ref/</span>Hutchcolor.cht</span> file
should be used, and the reference <span style="font-weight: bold;">.txt</span>
file downloaded from the website.<br>
</div>
<br>
For any other type of chart, a
chart recognition template file will need to be created (this is beyond
the scope of the current documentation).<br>
<br>
To create the scanner .ti3 file, run the <b>scanin</b> utility as
follows
(assuming an IT8 chart is being used):<br>
<br>
<a href="scanin.html"> scanin</a> -v scanner.tif It8.cht It8ref.txt<br>
<br>
"It8ref.txt" is assumed to be the name of the CIE reference file
supplied by the chart manufacturer. The resulting file will be named "<b>scanner.ti3</b>".<br>
<br>
<span style="font-weight: bold;">scanin</span> will process 16 bit per
component .tiff files, which (if the scanner is capable of creating
such files),&nbsp; may improve the quality of the profile. <br>
<br>
If you have any doubts about the correctness of the chart recognition,
or the subsequent profile's delta E report is unusual, then use the
scanin diagnostic flags <a href="scanin.html#d">-dipn</a> and examine
the <span style="font-weight: bold;">diag.tif</span> diagnostic file.<br>
<h4><a name="PS4"></a>Creating a scanner profile</h4>
Similar to a display profile, a scanner profile can be either a
shaper/matrix or LUT based profile. Well behaved scanners will
probably give the best results
with a shaper/matrix profile, but if the fit is poor, consider using a
LUT
type profile.<br>
<br>
If the purpose of the scanner profile is to use it as a substitute for
a
colorimeter, then the <b>-u</b> flag should be used to avoid clipping
values above the white point. Unless the shaper/matrix type profile is
a very good fit, it is probably advisable to use a LUT type profile in
this situation.<br>
<br>
To create a matrix/shaper profile, the following suffices:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Scanner</a> <a href="profile.html#E">A"</a> <a
 href="profile.html#q">-qm</a> <a href="profile.html#a">-as</a>
<a href="profile.html#p1">scanner</a><br>
<br>
For a LUT based profile then the following would be used:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Scanner A"</a>
<a href="profile.html#q">-qm</a>
<a href="profile.html#p1">scanner</a><br>
<br>
For the purposes of a poor mans colorimeter, the following would
generally be used:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Scanner A"</a>
<a href="profile.html#q">-qm</a> <a href="profile.html#u">-u</a>
<a href="profile.html#p1">scanner</a><br>
<br>
Make sure you check the delta E report at the end of the profile
creation, to see if the profile is behaving reasonably.<br>
<br>
<hr size="2" width="100%">
<h3><a name="PP1"></a>Profiling Printers<br>
</h3>
The overall process is to create a set of device measurement target
values, print them out, measure them, and then create an ICC profile
from the measurements. If the printer is an RGB based printer, then the
process is only slightly more complicated than profiling a display. If
the printer is CMYK based, then some additional parameters are required
to set the total ink limit (TAC) and &nbsp;black generation curve.<br>
<h4><a name="PP2"></a>Creating a print test chart</h4>
The first step in profiling any output device, is to create a set
of device colorspace test values. The important parameters needed are:<br>
<ul>
  <li>What colorspace does the device use ?</li>
  <li>How many test patches do I want to use/what paper size do I want
to use ?</li>
  <li>What instrument am I going to use to read the patches ?<br>
  </li>
  <li>If it is a CMYK device, what is the total ink limit ?<br>
  </li>
  <li>What information do I already have about how the device behaves ?</li>
</ul>
Most printers running through simple drivers will appear as if they are
RGB devices. Other drivers will drive a printer more directly, and will
expect a CMYK profile. [Currently Argyll is not capable of creating an
ICC profile for devices with more colorants than CMYK. When this
capability is introduced, it will by creating an additional separation
profile which then allows the printer to be treated as a CMY or CMYK
printer.] One way of telling what sort
of profile is expected for your device is to examine an existing
profile for
that device using <a href="iccdump.html">iccdump</a>.<br>
<br>
The number of test patches will depend somewhat on what quality profile
you want to make, as well as the effort needed to read the number of
test values. Generally it is convenient to fill a certain paper size
with the maximum
number of test values that will fit.<br>
<br>
At a minimum, for an RGB device, a few hundred values are needed.
For high quality CMYK profiles, 1000-3000 is not an unreasonable number
of
patches.<br>
<br>
To assist the determination of test patch values, it can help to have a
rough idea of how the device behaves. This could be in the form of an
ICC profile of a similar device, or a lower quality, or previous
profile for that particular device. If one were going to make a very
high quality Lut based profile, then it might be worthwhile to make up
a smaller, preliminary shaper/matrix profile using a few hundred test
points, before embarking on testing the device with several thousand.<br>
<br>
The documentation for the <a href="targen.html">targen</a> utility
lists
a
<a href="targen.html#Table">table</a> of
paper
sizes and number of &nbsp;patches for typical situations.<br>
<br>
For a CMYK device, a total ink limit usually needs to be specified.
Sometimes
a device will have a maximum total ink limit set by its manufacturer or
operator,
and some CMYK systems (such as chemical proofing systems) don't have
any
limit. Typical printing devices such as Xerographic printers, inkjet
printers
and printing presses will have a limit. The exact procedure for
determining an
ink limit is outside the scope of this document, but one way of going
about this might be to generate some small (say a few hundred patches)
with targen &amp; pritntarg with different total ink limits, and
printing them out, making the ink limit as large as possible without
striking problems that are caused by too much ink.<br>
<br>
Generally one wants to use the maximum possible amount of ink to
maximize the gamut available on the device. For most CMYK devices, an
ink limit between 200 and 400 is usual, but and ink limit of 250% or
over is generally desirable for reasonably dense blacks and dark
saturated colors. And ink limit of less than 200% will begin to
compromise the fully saturated gamut, as secondary colors (ie
combinations of any two primary colorants) will not be able to reach
full strength.<br>
<br>
Once an ink limit is used in printing the characterization test chart
for a device, it becomes a critical parameter<br>
in knowing what the characterized gamut of the device is. If after
printing the test chart, a greater ink limit<br>
were to be used, the the software would effectively be extrapolating
the device behaviour at total ink levels<br>
beyond that used in the test chart, leading to inaccuracies.<br>
<br>
Generally in Argyll, the ink limit is established when creating the
test chart values, and then carried through the<br>
profile making process automatically. Once the profile has been made
however, the ink limit is no longer recorded, and you, the user, will
have to keep track of it if the ICC profile is used in any program than
needs to know the usable gamut of the device.<br>
<br>
<br>
Lets consider two devices in our examples, "PrinterA" which is an RGB
device, and "PrinterB" which is CMYK, and has a target ink limit of
250%.
<br>
<br>
The simplest approach is to make a set of test values that is
independent
of the characteristics of the particular device:<br>
<br>
<a href="targen.html">targen</a> <a href="targen.html#v">-v</a> &nbsp;<a
 href="targen.html#d">-d3</a> <a href="targen.html#f">-f1053</a> <a
 href="targen.html#p1">PrinterA</a><br>
<br>
<a href="targen.html">targen</a> <a href="targen.html#v">-v</a> &nbsp;<a
 href="targen.html#d">-d4</a> <a href="targen.html#l">-l260</a> <a
 href="targen.html#f">-f1053</a> <a href="targen.html#p1">PrinterB</a><br>
<br>
The number of patches chosen here happens to be right for an A4 paper
size being read using a Spectroscan instrument. See the <a
 href="targen.html#Table">table</a> in&nbsp; the <a href="targen.html">targen</a>
documentation for some other suggested numbers.<br>
<br>
If there is a preliminary or previous profile called "OldPrinterA"
available, and we want to try creating a "pre-conditioned" set of test
values that will more efficiently sample the device response, then the
following would achieve this:<u><br>
</u><br>
<a href="targen.html">targen</a> <a href="targen.html#v">-v</a> &nbsp;<a
 href="targen.html#d">-d3</a> <a href="targen.html#f">-f1053</a> <a
 href="targen.html#c">-c OldPrinterA</a> <a href="targen.html#A">-A.8</a>
<a href="targen.html#p1">PrinterA</a><br>
<br>
<a href="targen.html">targen</a> <a href="targen.html#v">-v</a> &nbsp;<a
 href="targen.html#d">-d4</a> <a href="targen.html#l">-l260</a> <a
 href="targen.html#f">-f1053</a> <a href="targen.html#c">-c OldPrinterB</a>
<a href="targen.html#A">-A.8</a> <a href="targen.html#p1">PrinterB</a><br>
<a href="targen.html#p1"></a><br>
<br>
The output of <b>targen</b> will be the file PrinterA.ti1 and
PrinterB.ti1 respectively, containing the device space test values, as
well as expected CIE values used for chart recognition purposes.<br>
<br>
<br>
The next step is turn the test values in to a PostScript test file that
can printed on the device. The basic information that needs to be
supplied is the type of instrument that will be used to read the
patches, as well as the paper size it is to be formatted for.<br>
<br>
For an X-Rite DTP41, the following would be typical:<br>
<br>
<a href="printtarg.html">printtarg</a> <a href="printtarg.html#v">-v</a>
<a href="printtarg.html#i">-i41</a> <a href="printtarg.html#p">-pA4</a>
<a href="printtarg.html#p1">PrinterA</a><br>
&nbsp;<br>
For a Gretag Eye-One Pro, the following would be typical:<br>
<br>
<a href="printtarg.html">printtarg</a> <a href="printtarg.html#v">-v</a>
<a href="printtarg.html#i">-ii1</a> <a href="printtarg.html#p">-pA4</a>
<a href="printtarg.html#p1">PrinterA</a><br>
<br>
For using with a scanner as a colorimeter, the Gretag Spectroscan
layout is suitable, but the <a href="printtarg.html#s">-s</a> flag
should be used so as to generate a layout suitable for scan
recognition, as well as generating the scan recognition template
files. (You probably want to use less patches with <span
 style="font-weight: bold;">targen</span>, when using the <span
 style="font-weight: bold;">printtarg -s</span> flag, e.g. 1026 patches
for an A4R page, etc.) The following would be typical:<br>
<br>
<a href="printtarg.html">printtarg</a> <a href="printtarg.html#v">-v</a>
<a href="printtarg.html#s">-s</a> <a href="printtarg.html#i">-iSS</a> <a
 href="printtarg.html#p">-pA4R</a> <a href="printtarg.html#p1">PrinterA</a><br>
<span style="font-weight: bold;"><br>
printtarg</span> reads the
PrinterA.ti1
file, creates a PrinterA.ti2 file containing the layout information as
well as the device values and expected CIE values, as well as a
PrinterA.ps file containing the test chart. If the <span
 style="font-weight: bold;">-s</span> flag is used, one or more
PrinterA.cht files is created to allow the <a href="scanin.html">scanin</a>
program to recognize the chart.<br>
<br>
<span style="font-weight: bold;">GSview</span> is a good program to use
to check what the PostScript file will
look like, without actually printing it out. You could also use <span
 style="font-weight: bold;">Photoshop</span> or <span
 style="font-weight: bold;">ImageMagick</span> for this purpose.<br>
<br>
<br>
The last step is to print the chart out.<br>
<br>
Using a suitable PostScript downloader, print the chart out via a
PostScript interpreter. Alternately, an interpreter like GhostScript
or even Photoshop could be used to rasterize the file into something
that can be printed. Note that it is important that the PostScript
interpreter is setup for a device profiling run, and that any sort of
color conversion of color correction be turned off. If the device has a
calibration system, then it would be usual to have setup and calibrated
the device before starting the profiling run. If Photoshop was to be
used, then
either the chart needs to be a single page, or separate .eps files for
each page should be used, so that they can be converted to raster files
one at a time (see the <a href="printtarg#e">-e</a> flag).<br>
<br>
<h4><a name="PP3"></a>Reading a print test chart using an instrument</h4>
Once the test chart has been printed, the color of the patches needs to
be read using a suitable instrument.<br>
<br>
Several different instruments are currently supported, some that need
to be used patch by patch, some read a strip at a time, and some read a
sheet at a time. See <a href="instruments.html">instruments</a> for a
current list.<br>
<br>
The instrument needs to be connected to your computer before running
the <a href="chartread.html">chartread</a> command. Both serial port
and USB connected Instruments are supported. A serial port to USB
adapter
might have to be used if your computer doesn't have any serial ports,
and you have a serial interface connected instrument.<br>
<br>
If you run <a href="chartread.html">chartread</a> so as to print out
its usage message (ie. by using a <span style="font-weight: bold;">-?</span>
or <span style="font-weight: bold;">--</span> flags), then it will
list any identified serial ports or USB connected instruments, and
their corresponding number for
the <a href="chartread.html#c">-c</a> option. By default, <a
 href="chartread.html">chartread</a> will try to connect to the first
available USB instrument, or an instrument on the first serial port.<br>
<br>
The only arguments required is
to specify the basename of the .ti2 file. If a non-default serial port
is to be used, then the <span style="font-weight: bold;">-c</span>
option would also be specified.<br>
<br>
&nbsp;e.g. for a Spectroscan on the second port:<br>
<br>
<a href="chartread.html">chartread</a> <a href="chartread.html#c">-c2</a>
<a href="chartread.html#p1">PrinterA</a><br>
<br>
For a DTP41 to the default serial port:<br>
<br>
<a href="chartread.html">chartread</a><a href="chartread.html#i"></a>
<a href="chartread.html#p1">PrinterA</a><br>
<br>
<span style="font-weight: bold;">chartread</span> will interactively
prompt you through the process of reading each sheet or strip. See <a
 href="chartread.html">chartread</a> for more details on the responses
for each type of instrument. Continue with <a href="Scenarios.html#PP5">Creating
a printer profile</a>.<br>
<h4><a name="PP4"></a>Reading a print test chart using a scanner</h4>
<br>
Argyll supports using a scanner as a substitute for a colorimeter.
While a scanner is no replacement for a color measurement
instrument, it may give acceptable results in some situations, and may
give better results than a generic profile for a printing device.<br>
<br>
The main limitation of the scanner-as-colorimeter approach are:<br>
<br>
* The scanner dynamic range and/or precision may not match the printers
or what is required for a good profile.<br>
* The spectral interaction of the scanner test chart and printer test
chart with the scanner
spectral response can cause color errors.<br>
* Spectral differences caused by different black amounts in the print
test chart can cause
color errors. <br>
* The IT8 chart gamut may be so much smaller than the printers that the
scanner profile is too inaccurate. <br>
<br>
The end result is often a profile that has a slight color cast to,
compared to a profile created using a colorimeter or spectrometer..<br>
<br>
It is assumed that you have created a scanner profile following the <a
 href="#PS1">procedure</a> outline above. For best possible results it
is advisable to both profile the scanner, and use it in scanning the
printed test chart, in as "raw" mode as possible (i.e. using 16 bits
per component scans, if the scanner is
capable of doing so; not setting white or black points). It is
generally advisable to create a LUT type
scanner profile, and use the <a href="profile.html#u">-u</a> flag to
avoid clipping scanned value whiter than the scanner calibration chart.<br>
<br>
Scan your printer chart (or charts) on the scanner previously profiled.
<big><span style="font-weight: bold;">The
scanner must be configured and used exactly the same as it was when it
was profiled.</span></big><br>
<br>
I will assume the resulting scan file is called <span
 style="font-weight: bold;">PrinterB.tif</span> (or <span
 style="font-weight: bold;">PrinterB1.tif</span>, <span
 style="font-weight: bold;">PrinterB2.tif</span> etc. in the case of
multiple charts). As with profiling the scanner, the raster file need
only be roughly cropped so as to contain the test chart.<br>
<br>
The scanner recognition files
created when <span style="font-weight: bold;">printtarg</span> was run
is assumed to be called <span style="font-weight: bold;">PrinterB.cht</span>.
Using the scanner profile created previously (assumed to be called <span
 style="font-weight: bold;">scanner.icm</span>), the printer test chart
scan patches are converted to CIE values using the <span
 style="font-weight: bold;">scanin</span> utility:<br>
<br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
 href="scanin.html#c">-c</a> <a href="scanin.html#cp1">PrinterB.tif</a>
<a href="scanin.html#cp2">PrinterB.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<br>
If there were multiple test chart pages, the results would be
accumulated page by page using the <a href="scanin.html#ca">-ca</a>
option, ie., if there were 3 pages:<br>
<br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
 href="scanin.html#c">-c</a> <a href="scanin.html#cp1">PrinterB1.tif</a>
<a href="scanin.html#cp2">PrinterB1.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
 href="scanin.html#ca">-ca</a> <a href="scanin.html#cp1">PrinterB2.tif</a>
<a href="scanin.html#cp2">PrinterB2.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<a href="scanin.html">scanin</a> <a href="scanin.html#v">-v</a> <a
 href="scanin.html#ca">-ca</a> <a href="scanin.html#cp1">PrinterB3.tif</a>
<a href="scanin.html#cp2">PrinterB3.cht</a> <a href="scanin.html#cp3">scanner.icm</a>
<a href="scanin.html#cp4">PrinterB</a><br>
<br>
Now that the <span style="font-weight: bold;">PrinterB.ti3</span> data
has been obtained, the profile continue in the next section with <span
 style="font-weight: bold;">Creating a printer profile</span>.<br>
<br>
If you have any doubts about the correctness of the chart recognition,
or the subsequent profile's delta E report is unusual, then use the
scanin diagnostic flags <a href="scanin.html#d">-dipn</a> and examine
the <span style="font-weight: bold;">diag.tif</span> diagnostic file.<br>
<h4><a name="PP5"></a>Creating a printer profile<br>
</h4>
Creating an RGB based printing profile is very similar to creating a
display device profile. For a CMYK printer, some additional information
is needed to set the black generation.<br>
<br>
Where the resulting profile will be used conventionally (ie. using <a
 href="icclink.html">icclink</a> <a href="icclink.html#s">-s</a>, or <a
 href="cctiff.html">cctiff</a> <a href="cctiff.html#l">-l</a> or most
other "dumb" CMMs) it is important to specify that gamut mapping should
be computed for the output (B2A) perceptual and saturation tables. This
is done by specifying a device profile as the parameter to the <a
 href="profile.html">profile</a> <a href="profile.html#S">-S</a> flag.
When you intend to create a "general use" profile, it can be a good
technique to specify the source gamut as the opposite
type of profile to that being created, i.e. if a printer profile is
being
created, specify a display profile (e.g. sRGB) as the source gamut. If
a display profile is being created, then specify a printer profile as
the source
(e.g. SWOP).&nbsp; When linking to the profile you have created this
way as the output profile, then use perceptual intent if the source is
the opposite type, and relative colorimetric if it is the same type.<br>
<br>
"Opposite type of profile" refers to the native gamut of the device,
and what its fundamental nature is, additive or subtractive. An
emissive display will have additive primaries (R, G &amp; B), while a
reflective print, will have subtractive primaries (C, M, Y &amp;
possibly others), irrespective of what colorspace the printer is driven
in (a printer might present an RGB interface, but internally this will
be converted to CMY, and it will have a CMY type of gamut).&nbsp;
Because of the complimentary nature of additive and subtractive device
primary colorants, these types of devices have the most different
gamuts, and hence need the most gamut mapping to convert from one
colorspace to the other.<br>
<br>
If you are creating a profile for a specific purpose, intending to link
it to a specific input profile, then you will get the best results by
specifying that source profile as the source gamut.<br>
<br>
If a profile is only going to be used as an input profile, or is going
to be used with a "smart" CMM (e.g. <a href="icclink.html">icclink</a>
<a href="icclink.html#g">-g</a> or <a href="icclink.html#G">-G</a>),
then it can save considerable processing time and space if the -b flag
is used, and the -S flag not used.<br>
<br>
For an RGB printer intended to print RGB originals, the following might
be a typical profile usage:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Printer A"</a> <a href="profile.html#q">-qm</a>
<a href="profile.html#S">-S</a><a href="profile.html#S"> sRGB.icm</a> <a
 href="profile.html#c">-cmt</a> <a href="profile.html#d">-dpp</a>
<a href="profile.html#p1">PrinterA</a><br>
<br>
or if you intent to print from SWOP style CMYK originals:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Printer A"</a> <a href="profile.html#q">-qm</a>
<a href="profile.html#S">-S</a><a href="profile.html#S">
swop.icm</a> <a href="profile.html#c">-cmt</a> <a
 href="profile.html#d">-dpp</a>
<a href="profile.html#p1">PrinterA</a><br>
<br>
<h4><a name="PP6"></a>Choosing a black generation curve (and other CMYK
printer options)<br>
</h4>
For a CMYK printer, it would be normal to specify the type of black
generation, either as something simple, or as a specific curve. The
documentation&nbsp; in <a href="profile.html#k">profile</a> for the
details of the options. If you want to experiment with the various
black
generation parameters,<br>
then it might be a good idea to create a preliminary profile (using <a
 href="profile.html#q">-ql</a> <a href="profile.html#b">-b</a> <a
 href="profile.html#ni">-no</a>, <a href="profile.html#no">-ni</a> and
no <a href="profile.html#S">-S</a>), and then used <a
 href="xicclu.html#g">xicclu</a>
to explore the effect of the parameters.<br>
<br>
For instance, say we have our CMYK .ti3 file <span
 style="font-weight: bold;">PrinterB.ti3</span>. First we make a
preliminary profile called <span style="font-weight: bold;">PrinterBt</span>:<br>
<br>
copy PrinterB.ti3 PrinterBt.ti3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Use "cp"
on Linux or OSX of course.)<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#q">-ql</a>
<a href="profile.html#b">-b</a> <a href="profile.html#ni">-no</a> <a
 href="profile.html#no">-ni</a>
<a href="profile.html#p1">PrinterBt</a><br>
<br>
Then see what the minimum black level down the neutral axis can be:<br>
<br>
<a href="xicclu.html">xicclu</a> <a href="xicclu.html#g">-g</a> <a
 href="xicclu.html#k">-kz</a> <a href="xicclu.html#f">-fif</a> <a
 href="xicclu.html#i">-ir</a> <a href="xicclu.html#p1">PrinterBt.icm</a><br>
<br>
Which might be a graph something like this:<br>
<br>
<img alt="Graph of CMYK neutral axis with minimum K" src="Kgraph1.jpg"
 style="width: 250px; height: 250px;"><br>
<br>
Note&nbsp; how the minimum black is zero up to about L* value 20 (= 80%
of the curve), and then jumps up to 70%. This is because we've reached
the total ink limit, and K then has to be substituted for CMY, to keep
the total under the total ink limit.<br>
<br>
Then let's see what the maximum black level down the neutral axis can
be:<br>
<br>
<a href="xicclu.html">xicclu</a> <a href="xicclu.html#g">-g</a> <a
 href="xicclu.html#k">-kx</a> <a href="xicclu.html#f">-fif</a> <a
 href="xicclu.html#i">-ir</a><a href="xicclu.html#l"></a> <a
 href="xicclu.html#p1">PrinterBt.icm</a><br>
<br>
Which might be a graph something like this:<br>
<br>
<img alt="Graph of CMYK neutral axis with maximum K" src="Kgraph2.jpg"
 style="width: 250px; height: 250px;"><br>
<br>
Note how the CMY values are fairly low up to an L* value of about 15
(the low levels are setting the neutral color), and then they jump up.
This is because we've reach the point where black on it's own, isn't as
dark as the color that can be achieved using CMY and K. Because the K
has a dominant effect on the hue of the black, the levels of CMY are
often fairly volatile in this region.<br>
<br>
Any K curve we specify must lie between the black curves of the above
two graphs.<br>
<br>
Let's say we'd like to chose a moderate black curve, one that aims for
about equal levels of CMY and K. We should also aim for it to be fairly
smooth, since this will minimize visual artefacts caused by the limited
fidelity that profile LUT tables are able to represent inside the
profile.<br>
<br>
We need our curve to at least reach 70% at an L* value of 20 (80% of
the curve.) Lets also start at 0 at L* == 100 (0% of the curve).<br>
<br>
So for a first try:<br>
<br>
<a href="xicclu.html">xicclu</a> <a href="xicclu.html#g">-g</a> <a
 href="xicclu.html#k">-kp 0 0 .8 .7 1</a> <a href="xicclu.html#f">-fif</a>
<a href="xicclu.html#i">-ir</a> <a href="xicclu.html#p1">PrinterBt.icm</a><br>
<br>
<img alt="Graph of CMYK neutral axis with -kp 0 0 .8 .7 1"
 src="Kgraph3.jpg" style="width: 250px; height: 250px;"><br>
<br>
We've matched the curve at 80% quite well, but the transition isn't
very smooth, and the black level is higher than the CMY for most of the
curve. Let's try making the black curve somewhat concave, and also
adjust the other parameters slightly:<br>
<br>
<a href="xicclu.html">xicclu</a> <a href="xicclu.html#g">-g</a> <a
 href="xicclu.html#k">-kp 0 0 .83 .75 .5</a> <a href="xicclu.html#f">-fif</a>
<a href="xicclu.html#i">-ir</a> <a href="xicclu.html#p1">PrinterBt.icm</a><br>
<br>
<img alt="Graph of CMYK neutral axis with -kp 0 0 .83 .75 .5"
 src="Kgraph4.jpg" style="width: 250px; height: 250px;"><br>
<br>
This is looking pretty good now, but the L* = 100 point has the black
curving up rather suddenly at the start. Lets adjust the black curve so
the black will only start coming in at the 10% mark:<br>
<br>
<a href="xicclu.html">xicclu</a> <a href="xicclu.html#g">-g</a> <a
 href="xicclu.html#k">-kp 0 .1 .83 .83 .6</a> <a href="xicclu.html#f">-fif</a>
<a href="xicclu.html#i">-ir</a> <a href="xicclu.html#p1">PrinterBt.icm</a><br>
<br>
<img alt="Graph of CMYK neutral axis with -kp 0 .1 .83 .83 .6"
 src="Kgraph5.jpg" style="width: 250px; height: 250px;"><br>
<br>
<br>
The curve parameters can now be used to generate our real profile:<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Printer B"</a> <a href="profile.html#q">-qm</a>
<a href="profile.html#k">-kp 0 .1 .83 .83 .6</a>
<a href="profile.html#S">-S</a><a href="profile.html#S"> sRGB.icm</a> <a
 href="profile.html#c">-cmt</a> <a href="profile.html#d">-dpp</a>
<a href="profile.html#p1">PrinterB</a><br>
<br>
<h4>Overriding the ink limit<br>
</h4>
Normally the total ink limit
will be read from the <span style="font-weight: bold;">PrinterB.ti3</span>
file, and will be set at a level 10% lower than the number used in
creating the test chart values using <a href="targen.html#l">targen -l</a>.
If you want to override this with a lower limit, then use the <a
 href="profile.html#l">-l flag</a>.<br>
<br>
<a href="profile.html">profile</a> <a href="profile.html#v">-v</a> <a
 href="profile.html#E">-D"Printer B"</a> <a href="profile.html#q">-qm</a>
<a href="profile.html#S">-S</a><a href="profile.html#S"> sRGB.icm</a> <a
 href="profile.html#c">-cmt</a> <a href="profile.html#d">-dpp</a> <a
 href="profile.html#k">-kr</a>
<a href="profile.html#p1">PrinterB</a><br>
<br>
Make sure you check the delta E report at the end of the profile
creation, to see if the profile is behaving reasonably.<br>
<br>
<hr size="2" width="100%">
<h3><a name="LP1"></a>Linking Profiles</h3>
Two device profiles can be linked together to create a device link
profile,
than encapsulates a particular device to device transform. Often this
step is not necessary, as many systems and utilities will link two
device profiles "on the fly", but creating a device link profile gives
you the option of using "smart CMM" techniques, such as true gamut
mapping, improved inverse transform accuracy, tailored black
generation and
ink limiting.<br>
<br>
The overall process is to link the input space and
output space profiles using <a href="icclink.html">icclink</a>,
creating a device to device link profile. The device to device link
profile can then be used by cctiff (or other ICC device profile capable
utilities), to color
correct a raster files.<br>
<br>
Three examples will be given here, showing the three different modes
than <span style="font-weight: bold;">icclink</span> supports.<br>
<br>
In <a href="icclink.html#s">simple mode</a>, the two profiles are
linked together in a similar fashion to other <span
 style="font-weight: bold;">CMMs</span> simply using the forward and
backwards color transforms defined by the profiles. Any gamut mapping
is determined by the content of the tables within the two profiles,
together with the particular intent chosen. Typically the same intent
will be used for both the source and destination profile:<br>
<br>
<a href="icclink.html">icclink</a> <a href="icclink.html#v">-v</a> <a
 href="icclink.html#q">-qm</a> <a href="icclink.html#s">-s</a> <a
 href="icclink.html#si">-ip</a> <a href="icclink.html#so">-op</a> <a
 href="icclink.html#p1">SouceProfile.icm</a> <a href="icclink.html#p2">DestinationProfile.icm</a>
<a href="icclink.html#p3">Source2Destination.icm</a><br>
<br>
<br>
In <a href="icclink.html#g">gamut mapping mode</a>, the pre-computed
intent mappings inside the profiles are not used, but instead the gamut
mapping between source and destination is tailored to the specific
gamuts of the two profiles, and the intent parameter supplied to <span
 style="font-weight: bold;">icclink</span>. Additionally, source and
destination viewing conditions should be provided, to allow the color
appearance space conversion to work as intended:<br>
<br>
<a href="icclink.html">icclink</a> <a href="icclink.html#v">-v</a> <a
 href="icclink.html#q">-qm</a> <a href="icclink.html#g">-g</a> <a
 href="icclink.html#si">-ip</a> <a href="icclink.html#c">-cmt</a> <a
 href="icclink.html#d">-dpp</a> <a href="icclink.html#p1">MonitorSouceProfile.icm</a>
<a href="icclink.html#p2">DestinationProfile.icm</a>
<a href="icclink.html#p3">Source2Destination.icm</a><br>
<br>
<br>
In <a href="icclink.html#G">inverse output table gamut mapping mode</a>,
the pre-computed intent mappings inside the profiles are not used, but
instead the gamut mapping between source and destination is tailored to
the specific gamuts of the two profiles, and the intent parameter
supplied to <span style="font-weight: bold;">icclink</span>. In
addition, the B2A table is not used in the destination profile, but the
A2B table is instead inverted, leading to improved transform accuracy,
and in CMYK devices, allowing the ink limiting and black generation
parameters to be set.<br>
<br>
For a CLUT table based RGB printer destination profile, the following
would be appropriate:<br>
<br>
<a href="icclink.html">icclink</a> <a href="icclink.html#v">-v</a> <a
 href="icclink.html#q">-qm</a> <a href="icclink.html#G">-G</a> <a
 href="icclink.html#si">-ip</a> <a href="icclink.html#c">-cmt</a> <a
 href="icclink.html#d">-dpp</a> <a href="icclink.html#p1">MonitorSouceProfile.icm</a>
<a href="icclink.html#p2">RGBDestinationProfile.icm</a>
<a href="icclink.html#p3">Source2Destination.icm</a><br>
<br>
For a CMYK profile, the total ink limit needs to be specified (a
typical value being 10% less than the value used in creating the device
test chart), and the type of black generation also needs to be
specified:<br>
<br>
<a href="icclink.html">icclink</a> <a href="icclink.html#v">-v</a> <a
 href="icclink.html#q">-qm</a> <a href="icclink.html#G">-G</a> <a
 href="icclink.html#si">-ip</a> <a href="icclink.html#c">-cmt</a> <a
 href="icclink.html#d">-dpp</a> <a href="icclink.html#l">-l250</a> <a
 href="icclink.html#k">-kr</a> <a href="icclink.html#p1">MonitorSouceProfile.icm</a>
<a href="icclink.html#p2">CMYKDestinationProfile.icm</a>
<a href="icclink.html#p3">Source2Destination.icm</a><br>
<br>
Note that you should adjust the source (<a href="icclink.html#c">-c</a>)
and
destination (<a href="icclink.html#d">-d</a>)
viewing conditions for the type of device the profile represents, and
the conditions under which it will be viewed.<br>
<br>
<hr size="2" width="100%"><br>
<h3><a name="TR1"></a>Transforming colorspaces of raster files</h3>
Although a device profile or device link profile may be useful with
other programs and systems, Argyll provides the utility <a
 href="cctiff.html">cctiff</a> for directly applying a device to device
transform to a <a href="File_Formats.html#TIFF">TIFF</a> raster file.
The cctiff utility is capable of linking an arbitrary sequence of
device profiles, device links and abstract profiles. Each device
profile can be preceded by the <span style="font-weight: bold;">-i</span>
option to indicate the intent that should be used. Both 8 and 16 bit
per component files
can be handled, and up to 8 color channels. The color transform is
optimized to perform the transformation rapidly.<br>
<br>
If a device link is to be used, the following is a typical example:<br>
<br>
<a href="cctiff.html">cctiff</a> <a href="cctiff.html#p1">Source2Destination.icm</a>
<a href="cctiff.html#p2">infile.tif</a> <a href="cctiff.html#p3">outfile.tif</a><br>
<br>
<i><br>
</i>If a source and destination profile are to be used, the following
would be a typical example:<br>
<br>
<a href="cctiff.html">
cctiff</a>&nbsp; <a href="cctiff.html#i">-ip</a> <a
 href="cctiff.html#p1i">SourceProfile.icm</a>
<a href="cctiff.html#i">-ip</a> <a href="cctiff.html#p1o">DestinationProfile.icm</a>
<a href="cctiff.html#p2">infile.tif</a>
<a href="cctiff.html#p3">outfile.tif</a><br>
<br>
<br>
<br>
<hr size="2" width="100%"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>