#!/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]*$_) ), "> </td>\n"; } }
In reply to HTML color blend by avo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |