Diff for /loncom/homework/randomlylabel.pm between versions 1.17 and 1.18

version 1.17, 2004/02/23 23:24:50 version 1.18, 2004/02/23 23:54:14
Line 41  use LWP::UserAgent(); Line 41  use LWP::UserAgent();
 sub get_image {  sub get_image {
     my ($imgsrc,$set_trans)=@_;      my ($imgsrc,$set_trans)=@_;
     my $image;      my $image;
     &Apache::lonnet::logthis("imagesrc1 is $imgsrc");  
     if ($imgsrc !~ m|^(/home/)|) {      if ($imgsrc !~ m|^(/home/)|) {
  &Apache::lonnet::logthis("imagesrc2 is $imgsrc");  
  if ($imgsrc !~ /^http:/) {   if ($imgsrc !~ /^http:/) {
     $imgsrc="http://".$ENV{'HTTP_HOST'}.$imgsrc;      $imgsrc="http://".$ENV{'HTTP_HOST'}.$imgsrc;
  }   }
  &Apache::lonnet::logthis("imagesrc3 is $imgsrc");  
  &Apache::lonnet::logthis("LWP fetching image $imgsrc");  
  my $ua=new LWP::UserAgent;   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 $response=$ua->request($request,$file);
  &Apache::lonnet::logthis("content is ".$response->content_type);  
  &Apache::lonnet::logthis($response->is_success);  
  &Apache::lonnet::logthis($response->status_line);  
  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 73  sub get_image { Line 66  sub get_image {
     } elsif ($imgsrc !~ /\.(png|jpg|jpeg)$/i) {      } elsif ($imgsrc !~ /\.(png|jpg|jpeg)$/i) {
  my $conv_image = Image::Magick->new;   my $conv_image = Image::Magick->new;
  my $current_figure = $conv_image->Read('filename'=>$imgsrc);   my $current_figure = $conv_image->Read('filename'=>$imgsrc);
  &Apache::lonnet::logthis("Read said $current_figure");  
  $conv_image->Set('magick'=>'png');   $conv_image->Set('magick'=>'png');
  my @blobs=$conv_image->ImageToBlob();   my @blobs=$conv_image->ImageToBlob();
  undef $conv_image;   undef $conv_image;
Line 81  sub get_image { Line 73  sub get_image {
     } else {      } else {
  $image = GD::Image->trueColor(1);   $image = GD::Image->trueColor(1);
  $image = GD::Image->new($imgsrc);   $image = GD::Image->new($imgsrc);
  if (!defined($image)) {   
     &Apache::lonnet::logthis("Read said bluh");  
  } else {  
     &Apache::lonnet::logthis("looks good");  
  }  
     }      }
     if ($set_trans && defined($image)) {      if ($set_trans && defined($image)) {
  my $white=$image->colorExact(255,255,255);   my $white=$image->colorExact(255,255,255);
Line 114  sub handler { Line 101  sub handler {
     my $image;      my $image;
     if (defined($ENV{"cgi.$id.BGIMG"})) {      if (defined($ENV{"cgi.$id.BGIMG"})) {
  my $bgimg=&Apache::lonnet::unescape($ENV{"cgi.$id.BGIMG"});   my $bgimg=&Apache::lonnet::unescape($ENV{"cgi.$id.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 -'.
Line 142  sub handler { Line 129  sub handler {
     my @objtypes=split(':',$ENV{"cgi.$id.OBJTYPE"});      my @objtypes=split(':',$ENV{"cgi.$id.OBJTYPE"});
     foreach(my $i=0;$i<$ENV{"cgi.$id.OBJCOUNT"};$i++) {      foreach(my $i=0;$i<$ENV{"cgi.$id.OBJCOUNT"};$i++) {
  my $type=shift(@objtypes);   my $type=shift(@objtypes);
  &Apache::lonnet::logthis("type is $type");  
  if ($type eq 'LINE') {   if ($type eq 'LINE') {
     my ($x1,$y1,$x2,$y2,$color,$thickness)=      my ($x1,$y1,$x2,$y2,$color,$thickness)=
  split(':',$ENV{"cgi.$id.OBJ$i"});   split(':',$ENV{"cgi.$id.OBJ$i"});
Line 169  sub handler { Line 155  sub handler {
     my ($color,$width,$open)=split(':',$ENV{"cgi.$id.OBJ$i"});      my ($color,$width,$open)=split(':',$ENV{"cgi.$id.OBJ$i"});
     my $imcolor=&get_color_from_hexstring($image,$color);      my $imcolor=&get_color_from_hexstring($image,$color);
     my $polygon = (($open) ? (new GD::Polyline) : (new GD::Polygon));      my $polygon = (($open) ? (new GD::Polyline) : (new GD::Polygon));
       my $added=0;
     foreach my $coord (split('-',$ENV{"cgi.$id.OBJEXTRA$i"})) {      foreach my $coord (split('-',$ENV{"cgi.$id.OBJEXTRA$i"})) {
  my ($x,$y)=($coord=~m/\(([0-9]+),([0-9]+)\)/);   my ($x,$y)=($coord=~m/\(([0-9]+),([0-9]+)\)/);
  $polygon->addPt($x,$y);   $polygon->addPt($x,$y);
    $added++;
     }      }
       
     $image->setThickness($width);      $image->setThickness($width);
     if ($open) {      if ($added) {
  $image->polydraw($polygon,$imcolor);   if ($open) {
     } else {      $image->polydraw($polygon,$imcolor);
  $image->polygon($polygon,$imcolor);   } else {
       $image->polygon($polygon,$imcolor);
    }
     }      }
  } elsif ($type eq 'ARC') {   } elsif ($type eq 'ARC') {
     my ($x,$y,$width,$height,$start,$end,$color,$thickness,$filled)=      my ($x,$y,$width,$height,$start,$end,$color,$thickness,$filled)=
Line 215  sub handler { Line 206  sub handler {
     my $imcolor=&get_color_from_hexstring($image,$color);      my $imcolor=&get_color_from_hexstring($image,$color);
     my $height=GD::Font->Giant->height;      my $height=GD::Font->Giant->height;
     $image->string(GD::gdGiantFont,$x,$y-$height,$text,$imcolor);      $image->string(GD::gdGiantFont,$x,$y-$height,$text,$imcolor);
    } else {
       &Apache::lonnet::logthis("randomlylabel unable to handle object of type $type");
  }   }
     }      }
     $image->setThickness(1);      $image->setThickness(1);

Removed from v.1.17  
changed lines
  Added in v.1.18


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