BEGIN { my @map = ( ( map rgb2n( 0, 0, $_), ( 0.. 255) ), # => ( 0, 0, 0..255) ( map rgb2n( 0, $_- 255, 255), ( 256.. 510) ), # => ( 0, 1..255, 255) ( map rgb2n( 0, 255, 765-$_), ( 511.. 765) ), # => ( 0, 255, 254..0) ( map rgb2n($_- 765, 255, 0), ( 766..1020) ), # => (1..255, 255, 0) ( map rgb2n( 255, 1275-$_, 0), (1021..1275) ), # => ( 255, 254..0, 0) ( map rgb2n( 255, 0, $_-1275), (1276..1530) ), # => ( 255, 0, 1..255) ( map rgb2n( 255, $_-1530, 255), (1531..1785) ), # => ( 255, 1..255, 255) ) ; sub colorRamp1785_d { my ($v, $vmin, $vmax) = @_; return $map[(1785 + 1) * ($v - $vmin) / ($vmax - $vmin)] if ($v > $vmin) && ($v < $vmax) ; return $map[ 0] if ($v <= $vmin) ; return $map[1785] ; } ; } ;