Crea sito

N.B. This page is copied from

The conversion algorithms for these color spaces are originally from the book Fundamentals of Interactive Computer Graphics by Foley and van Dam (c 1982, Addison-Wesley). Chapter 17 describes color spaces and shows their relationships via easy-to-follow diagrams.


  1. Convert the RBG values to the range 0-1
  2. Find min and max values of R, B, G, say Xmin and Xmax
  3. Let L = (Xmax + Xmin) / 2
  4. If Xmax and Xmin are equal, S is defined to be 0, and H is undefined but in programs usually written as 0
  5. Otherwise, test L:
  6. Now find H: If H < 0 set H = H + 6. Notice that H ranges from 0 to 6. RGB space is a cube, and HSL space is a double hexacone, where L is the principal diagonal of the RGB cube. Thus corners of the RGB cube; red, yellow, green, cyan, blue, and magenta, become the vertices of the HSL hexagon. Then the value 0-6 for H tells you which section of the hexgon you are in. H is most commonly given as in degrees, so to convert H = H*60.0 (If H is negative, add 360 to complete the conversion.)


  1. If S=0, define R, G, and B all to L
  2. Otherwise, test L:
  3. Let temp1 = 2 * L - temp2
  4. Convert H to the range 0-1
  5. For each of R, G, B, compute another temporary value, temp3, as follows:
  6. For each of R, G, B, do the following test:
  7. Scale back to the range 0-255

Marco Corvi - Page hosted by