Diff for /loncom/homework/randomlylabel.pm between versions 1.28 and 1.32

version 1.28, 2006/05/30 12:45:37 version 1.32, 2017/05/23 03:07:34
Line 203  use Apache::Constants qw(:common); Line 203  use Apache::Constants qw(:common);
 use Apache::loncommon();  use Apache::loncommon();
 use GD;  use GD;
 use GD::Polyline();  use GD::Polyline();
 use LWP::UserAgent();  
 use Apache::lonnet;  use Apache::lonnet;
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
    use LONCAPA::LWPReq; 
   
 sub get_image {  sub get_image {
     my ($imgsrc,$set_trans)=@_;      my ($imgsrc,$set_trans)=@_;
     my $image;      my $image;
     if ($imgsrc !~ m|^(/home/)|) {      if ($imgsrc !~ m|^(/home/)|) {
  if ($imgsrc !~ /^http:/) {   if ($imgsrc !~ /^https?\:/) {
     $imgsrc="http://".$ENV{'HTTP_HOST'}.$imgsrc;      $imgsrc=&Apache::lonnet::absolute_url($ENV{'HTTP_HOST'}).$imgsrc;
  }   }
  my $ua=new LWP::UserAgent;  
  my $request=new HTTP::Request('GET',"$imgsrc");   my $request=new HTTP::Request('GET',"$imgsrc");
  $request->header(Cookie => $ENV{'HTTP_COOKIE'});   $request->header(Cookie => $ENV{'HTTP_COOKIE'});
  my $file="/tmp/imagetmp".$$;   my $file="/tmp/imagetmp".$$;
  my $response=$ua->request($request,$file);          my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};
           my $response=&LONCAPA::LWPReq::makerequest($lonhost,$request,$file,'','','',1);
  if ($response->is_success) {   if ($response->is_success) {
     if ($response->content_type !~ m-/(png|jpg|jpeg)$-i) {      if ($response->content_type !~ m-/(png|jpg|jpeg)$-i) {
  my $conv_image = Image::Magick->new;   my $conv_image = Image::Magick->new;
Line 267  sub get_color_from_hexstring { Line 266  sub get_color_from_hexstring {
     return $imcolor;      return $imcolor;
 }  }
   
   sub add_click {
       my ($image) = @_;
   
       my $length=6;
       my $bgcolor=&get_color_from_hexstring($image,'FFFFFF');
       my $fgcolor=&get_color_from_hexstring($image,'009999');
   
       my ($x,$y) = split(':',$env{'form.clickdata'});
   
       $image->setThickness(3);
       $image->line($x-$length,$y,        $x+$length,$y,        $bgcolor);
       $image->line($x,        $y-$length,$x,        $y+$length,$bgcolor);
       $image->setThickness(1);
       $image->line($x-$length,$y,        $x+$length,$y,        $fgcolor);
       $image->line($x,        $y-$length,$x,        $y+$length,$fgcolor);
   }
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     $r->content_type('image/png');      $r->content_type('image/png');
     $r->send_http_header;      $r->send_http_header;
     my (undef,$id) = split(/=/,$ENV{'QUERY_STRING'});  
     my $image;      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'});
     my $prefix="cgi.$id.";  
       my $prefix;
     if ($ENV{'QUERY_STRING'}=~/OBJCOUNT\=/) {      if ($ENV{'QUERY_STRING'}=~/OBJCOUNT\=/) {
  &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'});  
  $prefix='form.';   $prefix='form.';
       } else {
    $prefix="cgi.$env{'form.token'}.";
     }      }
   
       my $image;
     if (defined($env{$prefix."BGIMG"})) {      if (defined($env{$prefix."BGIMG"})) {
  my $bgimg=&unescape($env{$prefix."BGIMG"});   my $bgimg=&unescape($env{$prefix."BGIMG"});
  #&Apache::lonnet::logthis("BGIMG is ".$bgimg);   #&Apache::lonnet::logthis("BGIMG is ".$bgimg);
  $image=&get_image($bgimg,0);   $image=&get_image($bgimg,0);
  if (! defined($image)) {   if (! defined($image)) {
     &Apache::lonnet::logthis('Unable to create image object for -'.      &Apache::lonnet::logthis('Unable to create image object for -'.
      $id.'-'.$bgimg);       $env{'form.token'}.'-'.$bgimg);
     return OK;      return OK;
  }   }
     } elsif (defined($env{$prefix."SIZE"})) {      } elsif (defined($env{$prefix."SIZE"})) {
Line 301  sub handler { Line 321  sub handler {
     $image->transparent($bgcolor);      $image->transparent($bgcolor);
  }   }
     } else {      } else {
  &Apache::lonnet::logthis('Unable to create image object, no info');   &Apache::lonnet::logthis('Unable to create image object, no info '.$prefix);
  return OK;   return OK;
     }      }
     #binmode(STDOUT);      #binmode(STDOUT);
Line 425  sub handler { Line 445  sub handler {
     &Apache::lonnet::logthis("randomlylabel unable to handle object of type $type");      &Apache::lonnet::logthis("randomlylabel unable to handle object of type $type");
  }   }
     }      }
       if (exists($env{'form.clickdata'})) { &add_click($image); }
     $image->setThickness(1);      $image->setThickness(1);
     $r->print($image->png);      $r->print($image->png);
     return OK;      return OK;

Removed from v.1.28  
changed lines
  Added in v.1.32


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>