Makes fountain fills for your web needs. You can modify this for any needs - like colorizing texts for example. Enjoy.
#!/usr/bin/perl # Perl Color Blend Demo # by Anatoli Radulov use warnings; use strict; print "Content-type: text/html\n\n<html><body>"; #blend demo 1 print "<table cellspacing=0 border=1><tr>"; &blender ("#000000","#FFFFFF",12); &blender ("#ff0000","#FFFFFF",12); &blender ("#00ff00","#FFFFFF",12); &blender ("#0000ff","#FFFFFF",12); print "</tr></table>\n"; #blend demo 2 print "<table cellspacing=0><tr>"; &blender ("#FF0000","#FFFF00",20); &blender ("#FFFF00","#00FFFF",20); &blender ("#00FFFF","#FF00FF",20); &blender ("#FF00FF","#FF0000",20); print "</tr></table>"; print "</body></html>"; ###################################################################### +############################# sub blender { my (@range, @color1, @color2); #hex2dec; @color1 = ( @_[0] =~ /#([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f] +)([0-9A-Fa-f][0-9A-Fa-f])/ ); @color2 = ( @_[1] =~ /#([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f] +)([0-9A-Fa-f][0-9A-Fa-f])/ ); $_ = hex($_) foreach @color1; $_ = hex($_) foreach @color2; #calculate blend ranges $range[$_] = ($color2[$_] - $color1[$_])/@_[2] for (0..2); #blend @_[2] steps for (0..@_[2]) { print "<td width=15 bgcolor=", sprintf ("#%02x%02x%02x", int ($color1[0]+$range[0]*$_), int ($color1[1]+$range[1]*$_), int ($color1[2]+$range[2]*$_) ), ">&nbsp;</td>\n"; } }

Replies are listed 'Best First'.