in reply to Hex color degrader
sub darken_hexrgb { my ($hexrgb, $darken) = @_; my @rgb = map hex, unpack "A2"x3, $hexrgb; my $max = (sort {$a <=> $b} @rgb)[-1]; return "000000" if $max <= $darken; my $fact = ($max - $darken) / $max; return sprintf "%02X"x3, map { int($_ * $fact) } @rgb }
That's what it looks like:
| darken_hexrgb("FF9944", 8) = F79441 |
| darken_hexrgb("FF9944", 16) = EF8F3F |
| darken_hexrgb("FF9944", 32) = DF853B |
| darken_hexrgb("FF9944", 48) = CF7C37 |
| darken_hexrgb("FF9944", 64) = BF7232 |
| darken_hexrgb("FF9944", 80) = AF692E |
| darken_hexrgb("FF9944", 96) = 9F5F2A |
| darken_hexrgb("FF9944", 112) = 8F5526 |
| darken_hexrgb("FF9944", 128) = 7F4C21 |
| darken_hexrgb("FF9944", 160) = 5F3919 |
| darken_hexrgb("FF9944", 176) = 4F2F15 |
| darken_hexrgb("FF9944", 192) = 3F2510 |
| darken_hexrgb("FF9944", 208) = 2F1C0C |
| darken_hexrgb("FF9944", 224) = 1F1208 |
(Layout shamelessly stolen from BrowserUK.)
Makeshifts last the longest.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Hex color degrader
by BrowserUk (Patriarch) on Oct 13, 2002 at 16:30 UTC | |
by Aristotle (Chancellor) on Oct 13, 2002 at 16:48 UTC |