#!/usr/bin/perl use CGI; use CGI::Session; use GD; use strict; my $q=new CGI; my $ses=CGI::Session->new('driver:File;serializer=Storable;id:MD5',$q->param('sid'),{Directory=>'/tmp'}); my $phase=$ses->param("phase") || die ("Invalid session"); $ses->param("phase",$phase+1) if ($phase<3); my $x1=$ses->param('x1'); my $y1=$ses->param('y1'); my $image=GD::Image->newFromGif("logo.gif"); my $color = $image->colorResolve(0,0,0); if ($phase==1) { for (my $i=0;$i<5;$i++) { $image->setPixel($x1-$i,$y1,$color); $image->setPixel($x1+$i,$y1,$color); $image->setPixel($x1,$y1-$i,$color); $image->setPixel($x1,$y1+$i,$color); } } else { my $x2=$ses->param('x2'); my $y2=$ses->param('y2'); my $xLow=($x1<$x2?$x1:$x2); my $xHi=($x1>$x2?$x1:$x2); for (my $x=$xLow;$x<$xHi;$x++) { $image->setPixel($x,$y1,$color); $image->setPixel($x,$y2,$color); } my $yLow=($y1<$y2?$y1:$y2); my $yHi=($y1>$y2?$y1:$y2); for (my $y=$yLow;$y<$yHi;$y++) { $image->setPixel($x1,$y,$color); $image->setPixel($x2,$y,$color); } } my $pngdata=$image->png; print $q->header('image/png'); binmode STDOUT; print $pngdata;