Article View: comp.lang.postscript
Article #1965Re: Colour Matching problem.
From: Chris Lilley
Date: Tue, 25 Aug 1992 17:51
Date: Tue, 25 Aug 1992 17:51
67 lines
3380 bytes
3380 bytes
In article <12702@hardy.rl.ac.uk> rjm@inf.rl.ac.uk writes: >I am attempting to do colour matching between a monitor and >a PostScript Level 1 + Colour extensions printer. >My colour matching has produced a mapping as follows:- >Cyan -> Matched Cyan >Magenta -> Matched Magenta >Yellow -> Matched Yellow >Black -> Matched Black >This all sounds fine, but implementing this in PostScript is >a problem. I understand that colour transfer functions can be used >to map colours into device colours. This would work fine for the >Cyan, Magenta and Yellow, but the Black depends on the values for C, >M and Y. >Is it possible to get hold of the values for C, M and Y inside >the transfer function for Black ? In reverse order: Calculating black is easy. K = n * min (C, M, Y) where n is between 0 and 1 Reduce each of C, M, Y by K. Matching screen secondaries to device primaries is easy and gives poor results. You do not give quite enough information for me to see what exactly your matching program is doing. However, let us assume that you can generate a cyan (say) that matches on screen and printer. Let us also say you can generate a yellow that matches. You seem to be assuming that this is a three point mapping problem. It isn't. Mixing those two colours on the screen will give a colour that could be precisely predicted from the CIE chromaticities of the two colours. Mixing the two colours in the printer gives a very different colour; it is not additive and not linear. The only sure way to get a match is to print samples of C,M,Y (and K if you are keen) varying each one from 0 to 1 so you get a sample of the colours. Using 10 samples for each gives 1000 data points for CMY or 10000 for CMYK. Then you measure the chromaticity and luminance of each sample, and put this data into a three (or four) dimensional inverted lookup table. Given a monitor colour (RGB), the monitor chromaticities, white point and gamma, you can convert this to a CIE specification, then interpolate from your table to predict how much of each ink to use. This is of course rather a lot of work. Level 2 PostScript does all this for you. I suggest you consider using it if this is an option for your printer. If not, hassle the manufacturers :) I have of course simplified this argument to fit a reasonable space; nonetheless if anyone feels I am off target here feel free to mail me. This only represents *my* understanding. -- Chris Lilley --------------------------------------------------------------------------- Technical Author, ITTI Computer Graphics and Visualisation Training Project Computer Graphics Unit, Manchester Computing Centre, Manchester, UK Internet: lilley@cgu.mcc.ac.uk Janet: lilley@uk.ac.mcc.cgu Voice: +44 (0)61 275 6095 Fax: +44 (0)61 275 6040 ---------------------------------------------------------------------------
Technical Details
Message-ID:
<5908@m1.cs.man.ac.uk>Path:
arc1-ca.pugleaf.net!sparky!uunet!pipex!unipalm!uknet!mucs!lilleycReferences:
<12702@hardy.rl.ac.uk>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!pipex!unipalm!uknet!mucs!lilleyc From: lilleyc@cs.man.ac.uk (Chris Lilley) Newsgroups: comp.lang.postscript Subject: Re: Colour Matching problem. Message-ID: <5908@m1.cs.man.ac.uk> Date: 25 Aug 92 17:51:32 GMT References: <12702@hardy.rl.ac.uk> Sender: news@cs.man.ac.uk Organization: Dept Computer Science, University of Manchester, U.K. Lines: 67