#!/usr/bin/perl -w
use strict;
use GD; # this lib is so cool
my $imagename = shift;
# get the user specified image
my $image = GD::Image->new($imagename) || die "Could not open image: $
+imagename\n";
# get the image size
my ($width, $height) = $image->getBounds();
# build the seed color...
my $index = $image->getPixel(0, 0);
my ($r,$g,$b) = $image->rgb($index);
# now format it as 2 digit hex
my $color = sprintf "%02x%02x%02x", $r, $g, $b;
my $lastcolor = "";
my $count;
# the stylesheet is necessary to make the end result acceptably small
my $results = "<STYLE>.sm { font-size: 2px; font-family: sans-serif }<
+/STYLE>\n";
$results .= "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=$width
+HEIGHT=$height>";
# loop through the pixels
for (my $x = 0; $x < $height; $x++) {
$count = 0;
$results .= "<TR>";
for (my $y = 0; $y < $width; $y++) {
$count++;
# get the color of the current pixel
$index = $image->getPixel($y, $x);
($r,$g,$b) = $image->rgb($index);
$color = sprintf "%02x%02x%02x", $r, $g, $b;
# we use this to build a COLSPAN length
# this greatly enhances efficiency
if ($color ne $lastcolor) {
$count = $count * 2;
$results .= "<TD CLASS=sm BGCOLOR=\"$lastcolor
+\" COLSPAN=$count>_</TD>";
$count = 0;
}
$lastcolor = $color;
}
$count = $count * 2;
$results .= "<TD CLASS=sm BGCOLOR=\"$lastcolor\" COLSPAN=$coun
+t>_</TD>";
$results .= "</TR>\n";
}
$results .= "</TABLE>";
print "$results\n";
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|