Here is a modified version of a script I have used in the past for something like this. It offers users an option of what color to use for design features (such as background color, text color, links, etc.). The only REALLY ugly thing about this is that it is all in an HTML table... so the browser has to load the entire (quite lengthy) HTML file before it can display any of the color options. But I have found it isn't TOO bad. Though I myself might be changing over to an image map :) But have a crack at it anyway.

For the example, I have provided, as the list, the "web-safe" color palette. These are the colors that are supposedly displayed the same on all monitors/browsers. As a rule of thumb, only colors from this list should be used when designing web sites on the internet :)

#!c:/perl/bin/perl use strict; use CGI; ################################ #CONFIGURATION FOR SCRIPT # ################################ # Please note that $cols * $rows MUST multiply to the # same number of colors in the @colors array. # If this rule is not followed, incorrect HTML # will be outputted. my $cols = 18; # Number of columns to display my $rows = 12; # Number of rows to display #Here is the list of all colors to be shown my @colors = qw( 000000 000033 000066 000099 0000CC 0000FF 003300 003333 003366 003399 +0033CC 0033FF 006600 006633 006666 006699 0066CC 0066FF 009900 009933 009966 009999 0099CC 0099FF 00CC00 00CC33 00CC66 00CC99 +00CCCC 00CCFF 00FF00 00FF33 00FF66 00FF99 00FFCC 00FFFF 330000 330033 330066 330099 3300CC 3300FF 333300 333333 333366 333399 +3333CC 3333FF 336600 336633 336666 336699 3366CC 3366FF 339900 339933 339966 339999 3399CC 3399FF 33CC00 33CC33 33CC66 33CC99 +33CCCC 33CCFF 33FF00 33FF33 33FF66 33FF99 33FFCC 33FFFF 660000 660033 660066 660099 6600CC 6600FF 663300 663333 663366 663399 +6633CC 6633FF 666600 666633 666666 666699 6666CC 6666FF 669900 669933 669966 669999 6699CC 6699FF 66CC00 66CC33 66CC66 66CC99 +66CCCC 66CCFF 66FF00 66FF33 66FF66 66FF99 66FFCC 66FFFF 990000 990033 990066 990099 9900CC 9900FF 993300 993333 993366 993399 +9933CC 9933FF 996600 996633 996666 996699 9966CC 9966FF 999900 999933 999966 999999 9999CC 9999FF 99CC00 99CC33 99CC66 99CC99 +99CCCC 99CCFF 99FF00 99FF33 99FF66 99FF99 99FFCC 99FFFF CC0000 CC0033 CC0066 CC0099 CC00CC CC00FF CC3300 CC3333 CC3366 CC3399 +CC33CC CC33FF CC6600 CC6633 CC6666 CC6699 CC66CC CC66FF CC9900 CC9933 CC9966 CC9999 CC99CC CC99FF CCCC00 CCCC33 CCCC66 CCCC99 +CCCCCC CCCCFF CCFF00 CCFF33 CCFF66 CCFF99 CCFFCC CCFFFF FF0000 FF0033 FF0066 FF0099 FF00CC FF00FF FF3300 FF3333 FF3366 FF3399 +FF33CC FF33FF FF6600 FF6633 FF6666 FF6699 FF66CC FF66FF FF9900 FF9933 FF9966 FF9999 FF99CC FF99FF FFCC00 FFCC33 FFCC66 FFCC99 +FFCCCC FFCCFF FFFF00 FFFF33 FFFF66 FFFF99 FFFFCC FFFFFF ); # Are colors in @colors in hex or name form? # '1' for hex colors (like '#0F0F0F') # '0' for named colors (like 'red') my $colors_hex = 1; ########################### #END CONFIGURATION # ########################### my $count; my %input; my $query = new CGI; $input{$_} = $query->param($_) foreach ($query->param()); if (defined($input{'bg'})) { &print_it ("Your current background color is #$input{'bg'}. Select + a new color:"); } else { $input{'bg'} = "FFFFFF"; &print_it ("Please select a color for your background:"); } sub print_it { my $bg; if ($colors_hex == 1) { $bg = '#'; } else { $bg = ''; } print qq|Content-type: text/html\n <html> <head> <title>Select Color</title> </head> <body bgcolor="$bg$input{'bg'}"> $_[0]<p> <table border="0" cellpadding="0" cellspacing="1"> |; foreach (@colors) { if ($count % $cols == 0 && $count != 0) { print qq|</tr>|; } if ($count % $cols == 0 && $count != ($cols * $rows)) { print qq|<tr>| +; } print qq| <td bgcolor="$bg$_" height="15" width="15" bgcolor="#$_"> <a href="$ENV{'SCRIPT_NAME'}?bg=$_"><font color="$bg$_">&nbsp;&nbsp;&n +bsp;&nbsp;&nbsp;</font></a> </td> |; $count++; } print qq| </tr> </table> </body> </html> |; }

In reply to Re: color selection image map by mt2k
in thread color selection image map by steves

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.