Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
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>";
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 (Abbot) 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;
        لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://2775]
help
Chatterbox?
[Discipulus]: might be it is necessary to pass the pic data like MIME::Base64:: encode( data..
[Discipulus]: if you have a jpeg data: or as wise Corion said IM ca n read directly your handle
[Corion]: Meh. I get the feeling I should post a call-to-action for people to test their modules with the upcoming 5.26 (or 5.25.latest), as it seems that the smoke testers don't really weed out modules that fail without . in @INC
[Corion]: But without instructions on how to easily test things yourself, I don't think such a call to arms is helpful
[Corion]: (this post on nntp.perl.org / p5p makes it seem to me that smoke testers seem to have a blind spot there)

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2017-03-27 08:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (317 votes). Check out past polls.