Source code of maptest.pl
!/usr/local/bin/perl
# fill x=30&y=150&r=0&g=0&b=0
&parse_form;
$flyprog = "/usr/local/bin/fly -q";
$outfile = "/home/lampang/tempfile.txt";
open(FLY,">$outfile") || die "Can't Open File : $!\n";
print FLY "new\n";
print FLY "size 200,200\n";
print FLY "copy 0,0,-1,-1,-1,-1,/home/lampang/maptest.gif\n";
print FLY "circle 32,32,32,0,0,0\n";
print FLY "filltoborder 75,75,0,0,0,0,255,255,\n";
print FLY "fill $c{'x'},$c{'y'},$c{'r'},$c{'g'},$c{'b'}\n";
close(FLY);
$output = `$flyprog -i $outfile`;
print "Content-type: image/gif\n\n";
print "$output";
sub parse_form {
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
@pairs = split(/&/, $ENV{'QUERY_STRING'});
} elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
}
foreach $pair (@pairs) {
local($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$c{$name} = $value;
}
if (length($c{'x'}) eq 0) { $c{'x'}=30; }
if (length($c{'y'}) eq 0) { $c{'y'}=150; }
if (length($c{'r'}) eq 0) { $c{'r'}=0; }
if (length($c{'g'}) eq 0) { $c{'g'}=0; }
if (length($c{'b'}) eq 0) { $c{'b'}=0; }
}
|