Pro HLS, Litlo, Lithi, Satlo, Sathi, Hue, Loops, Colr common colors,red,green,blue,cur_red,cur_green,cur_blue on_error,2 ;Return to caller if an error occurs S = (sathi-satlo)/25600.*findgen(256)+satlo/100. L = (Lithi-Litlo)/25600.*findgen(256)+litlo/100. HG = Loops*360./256.*findgen(256)+ Hue Hmin = Min(hg)/360. IF HMIN LT 0. THEN HMIN = FIX(HMIN)-1 ELSE $ HMIN =FIX(HMIN) HG = (HG - Hmin*360.) mod 360. ;Make all positive HR = (HG +120) mod 360. HB = (HG +240) mod 360. ; N2 = (L LE .5)*(L+L*S) + (L GT .5)*(L+S-L*S) N1 = 2*L - N2 N21 = (N2-N1)/60. COLR = FLTARR(256,3) ; FOR I=0,255 DO BEGIN ;What a mess. IF S[I] EQ 0. THEN COLR[I,*]=L[I] ELSE BEGIN IF HR[I] LT 60. THEN COLR[I,0]=N1[I]+N21[I]*HR[I] ELSE $ IF HR[I] LT 180. THEN COLR[I,0]=N2[I] ELSE $ IF HR[I] LT 240. THEN COLR[I,0]=N1[I]+N21[I]*(240.-HR[I]) ELSE $ COLR[I,0]=N1[I] IF HG[I] LT 60. THEN COLR[I,1]=N1[I]+N21[I]*HG[I] ELSE $ IF HG[I] LT 180. THEN COLR[I,1]=N2[I] ELSE $ IF HG[I] LT 240. THEN COLR[I,1]=N1[I]+N21[I]*(240.-HG[I]) ELSE $ COLR[I,1]=N1[I] IF HB[I] LT 60. THEN COLR[I,2]=N1[I]+N21[I]*HB[I] ELSE $ IF HB[I] LT 180. THEN COLR[I,2]=N2[I] ELSE $ IF HB[I] LT 240. THEN COLR[I,2]=N1[I]+N21[I]*(240.-HB[I]) ELSE $ COLR[I,2]=N1[I] ENDELSE ENDFOR ; COLR = FIX(COLR*255.)<255 ;CVT TO 0, 255. RED = COLR[*,0] ;SAVE IN COMMON GREEN = COLR[*,1] BLUE = COLR[*,2] TVLCT,RED,GREEN,BLUE ;LOAD COLORS cur_red = red & cur_green = green & cur_blue = blue RETURN END