--- loncom/homework/imageresponse.pm 2003/06/09 22:31:56 1.30 +++ loncom/homework/imageresponse.pm 2003/08/01 15:50:43 1.34 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.30 2003/06/09 22:31:56 albertel Exp $ +# $Id: imageresponse.pm,v 1.34 2003/08/01 15:50:43 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,13 +25,16 @@ # # http://www.lon-capa.org/ # - +# July,August 2003 H. K. Ng +# #FIXME LATER assumes multiple possible submissions but only one is possible #currently package Apache::imageresponse; +use Apache::randomlylabel; use strict; use Image::Magick; +use GD; BEGIN { &Apache::lonxml::register('Apache::imageresponse',('imageresponse')); @@ -218,6 +221,16 @@ sub end_conceptgroup { return $result; } +sub insert_foil { + return ' + + + + + +'; +} + $Apache::imageresponse::curname=''; sub start_foil { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; @@ -308,7 +321,37 @@ sub end_image { my $name = $Apache::imageresponse::curname; if ($target eq 'web') { my $image = &Apache::lonxml::endredirection; - &Apache::lonxml::debug("out is $image"); + &Apache::lonxml::debug("original image is $image"); + my $id=$Apache::inputtags::response['-1']; + my $temp=1; + my $x=$ENV{"form.HWVAL_$id:$temp.x"}; + my $y=$ENV{"form.HWVAL_$id:$temp.y"}; + if (defined ($x) && defined ($y)) { + &Apache::lonxml::debug("x and y defined as $x,$y"); + my $currentImage = &Apache::randomlylabel::get_image('/home/httpd/html'.$image,1); + if (! defined($currentImage)) { + &Apache::lonnet::logthis('Unable to create image object for '.$image); + return ''; + } + my $red; + if (!($red = $currentImage->colorResolve(255,0,0))) { + $red = $currentImage->colorClosestHWB(255,0,0); + } + my $length = 6; + $currentImage->line($x-$length,$y-$length,$x+$length,$y+$length,$red); + $currentImage->line($x-$length,$y+$length,$x+$length,$y-$length,$red); + + my ($nameWOext) = ($image =~ /^.*\/(.*)\..*$/); + &Apache::lonxml::debug("graph name $nameWOext"); + my $webImageName = "/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_". + $nameWOext.'.png'; #needs to be more random or specific + my $newImageName = '/home/httpd'.$webImageName; + + my $imgfh = Apache::File->new('>'.$newImageName); + print $imgfh $currentImage->png; + $image = $webImageName; + } + &Apache::lonxml::debug("out image is $image"); if ( $Apache::imageresponse::conceptgroup && !&Apache::response::showallfoils()) { $Apache::response::conceptgroup{"$name.image"} = $image;