Diff for /loncom/homework/randomlylabel.pm between versions 1.2 and 1.3

version 1.2, 2002/11/13 23:52:41 version 1.3, 2002/11/17 09:43:40
Line 34  use strict; Line 34  use strict;
 use Image::Magick;  use Image::Magick;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::loncommon();  use Apache::loncommon();
   use GD;
   
   sub get_image {
       my ($imgsrc,$set_trans)=@_;
       my $image;
       if ($imgsrc !~ /\.(png|jpg|jpeg)$/) {
    my $conv_image = Image::Magick->new;
    my $current_figure = $conv_image->Read('filename'=>$imgsrc);
    $conv_image->Set('magick'=>'png');
    my @blobs=$conv_image->ImageToBlob();
    undef $conv_image;
    $image = GD::Image->new($blobs[0]);
       } else {
    $image = GD::Image->new($imgsrc);
       }
       if ($set_trans) {
    my $white=$image->colorExact(255,255,255);
    if ($white != -1) { $image->transparent($white); }
       }
       return $image;
   }
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 42  sub handler { Line 63  sub handler {
     &Apache::loncommon::get_unprocessed_cgi(      &Apache::loncommon::get_unprocessed_cgi(
                &Apache::lonnet::unescape($ENV{'imagerequest.'.$token}));                 &Apache::lonnet::unescape($ENV{'imagerequest.'.$token}));
     &Apache::lonnet::delenv('imagerequest\.'.$token);      &Apache::lonnet::delenv('imagerequest\.'.$token);
     my $image = Image::Magick->new;      my $image=&get_image($ENV{"form.BGIMG"},0);
     my $current_figure = $image->Read('filename'=>$ENV{"form.BGIMG"});  
     #binmode(STDOUT);      #binmode(STDOUT);
       my $black = $image->colorAllocate(0,0,0);
     for(my $i=0;$i<$ENV{"form.ICOUNT"};$i++) {      for(my $i=0;$i<$ENV{"form.ICOUNT"};$i++) {
  my $subimage = Image::Magick->new;   my $subimage=&get_image($ENV{"form.IMG$i"},1);
  $subimage->Read('filename' => $ENV{"form.IMG$i"});   $image->copy($subimage,$ENV{"form.X$i"},$ENV{"form.Y$i"},
  $image->Composite('x' => $ENV{"form.X$i"},'y' => $ENV{"form.Y$i"},       0,0,$subimage->getBounds());
  'compose'=> 'Over', 'image' => $subimage,  
  'gravity' => 'NorthWest');  
  undef($subimage);  
     }      }
       my $height=GD::Font->Giant->height;
     for(my $i=0;$i<$ENV{"form.COUNT"};$i++) {      for(my $i=0;$i<$ENV{"form.COUNT"};$i++) {
  $image->Annotate('text' => $ENV{"form.LB$i"},'x' => $ENV{"form.X$i"},   $image->string(gdGiantFont,$ENV{"form.X$i"},$ENV{"form.Y$i"}-$height,
  'y' => $ENV{"form.Y$i"}, 'font' => 'Times-Bold',         $ENV{"form.LB$i"},$black);
  'pointsize' => 18, 'antialias' => 'true',  
  'gravity' => 'NorthWest');  
     }      }
     $image->Set('magick'=>'png');      $r->print($image->png);
     my @blobs=$image->ImageToBlob();  
     $r->print($blobs[0]);  
     return OK;      return OK;
 }  }
   

Removed from v.1.2  
changed lines
  Added in v.1.3


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