Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Random Color Generator

by Elihu (Novice)
on Feb 03, 2000 at 08:05 UTC ( #2775=sourcecode: print w/ replies, xml ) Need Help??

Category: HTML Utility
Author/Contact Info Elihu
Description: This is a cgi script that generates an 8 by 8 grid of random colors with their appropriate hex values. Useful for picking colors for web pages.
#!/usr/bin/perl -w
#
# HTML Color Generator
# by Rob Hudson (elihu@atdot.org)
# June 1, 1999
use strict;
my @colors;

for (my $i = 0; $i < 64; $i++) {

  my ($rand,$x);
  my @hex;

  for ($x = 0; $x < 3; $x++) {
    $rand = rand(255);
    $hex[$x] = sprintf ("%x", $rand);
    if ($rand < 9) {
      $hex[$x] = "0" . $hex[$x];
    }
    if ($rand > 9 && $rand < 16) {
      $hex[$x] = "0" . $hex[$x];
    }
  }
  $colors[$i] = "\#" . $hex[0] . $hex[1] . $hex[2];
}

print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Random Color Generator</TITLE></HEAD>";
print "<BODY BGCOLOR=\"#FFFFFF\">\n";
print "<H2><CENTER>Random Color Generator</CENTER></H2>";
print "<TABLE CELLSPACING=5 CELLPADDING=5 ALIGN=CENTER>\n";

my $count = 0;
for (my $i = 0; $i < 8; $i++) {
  print "<TR>\n";
  for (my $x = 0; $x < 8; $x++) {
    print "<TD BGCOLOR=\"#E0E0E0\"> $colors[$count++] </TD>";
  }
  print "</TR><TR>\n";
  $count -= 8;
  for (my $y = 0; $y < 8; $y++) {
    print "<TD BGCOLOR=\"$colors[$count++]\"> &nbsp;<BR>&nbsp;</TD>\n"
+;
  }
  print "</TR>\n";
}
print "</TABLE></BODY></HTML>";

Comment on Random Color Generator
Download Code
Replies are listed 'Best First'.
Re: Random Color Generator
by salvadors (Pilgrim) on Dec 31, 2000 at 16:31 UTC
    That's quite a longwinded way of generating the colors array. Especially as you do exactly the same in each part of the 'if'!

    I'd use something like:

    my @colors = map { join "", map { sprintf "%02x", rand(255) } (0..2) } (0..63);

    Tony

RE: Random Color Generator
by subpop (Sexton) on Mar 10, 2000 at 06:10 UTC
    randomly cool. I ran it through another script that kept the pages coming. made for a nifty light show...
Re: Random Color Generator
by Tux (Monsignor) on Jun 06, 2013 at 13:21 UTC

    Those are the fun projects in our fav scripting language :)

    Not to be pedantic, but I rewrote the script to be both more perlish and more xhtml compliant. A lot of your variables are unneeded. The first part is html and css only, the last (very simple) loop incorporates all your fun


    Enjoy, Have FUN! H.Merijn
Re: Random Color Generator
by OfficeLinebacker (Chaplain) on Sep 14, 2006 at 15:55 UTC
    Greetings, esteemed monks!

    Pretty sweet. For generating just one random color, I used

    my @ca=('0','3','6','9','C','E'); my @bgc=('','',''); foreach my $c (@bgc){ $r=int(rand(6)); $c=$ca[$r].$ca[$r]; } my $bgc=join("",@bgc);

    _________________________________________________________________________________

    I like computer programming because it's like Legos for the mind.

      my ($red, $green, $blue) = (int(rand(255)), int(rand(255)), int(rand(2 +55))); print qq{<div style="background-color: rgb($red, $green, $blue);"></di +v>};
        Or, if you do not want to repeat yourself:
        my ($red, $green, $blue) = map int rand 255, 1 .. 3;
        لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://2775]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2015-09-05 12:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred temperature scale is:










    Results (152 votes), past polls