Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 68 lines (45 sloc) 1.614 kb
#!/usr/bin/perl -w
use strict;
use CGI;
use Imager;
my $cgi = CGI->new;
my $color = $cgi->param('color');
defined $color or $color = '';
# Imager allows a number of different color specs, but keep this
# simple, only accept simple RRGGBB hex colors
my %errors;
# note that you need to perform validation here as well as in
# the form script, since the user can view image and manipulate the
# URL (or even fetch the URL using LWP and modify the request in any way
# they like.
# Since we're producing an image, we don't have a mechanism to
# report errors (unless we choose to draw text on an image), so
# just product a default image.
if (!defined $color || $color !~ /^[0-9a-f]{6}$/i) {
$color = '000000';
my $im = Imager->new(xsize=>40, ysize=>40);
$im->box(filled=>1, color=>$color);
# this will force the flushing of the headers, otherwise the server (and
# your web browser) may see the image data before the content type.
print "Content-Type: image/jpeg\n\n";
# use binmode to prevent LF expanding to CRLF on windows
binmode STDOUT;
# we have to supply the type of output since we haven't supplied a
# filename
$im->write(fd=>fileno(STDOUT), type=>'jpeg')
or die "Cannot write to stdout: ", $im->errstr;
=head1 NAME
samp-image.cgi - demonstrates interaction of HTML generation with image generation
This is the image generation program that samp-form.cgi uses to
generate the image.
See samp-form.cgi for more detail.
=head1 AUTHOR
Tony Cook <>
Jump to Line
Something went wrong with that request. Please try again.