Diff for /loncom/homework/randomlylabel.pm between versions 1.19 and 1.21

version 1.19, 2004/03/16 23:08:23 version 1.21, 2004/09/09 07:24:56
Line 54  sub get_image { Line 54  sub get_image {
     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;
  my $current_figure = $conv_image->Read('filename'=>$file);   my $current_figure = $conv_image->Read('filename'=>$file);
    $conv_image->Set('type'=>'TrueColor');
  $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 66  sub get_image { Line 67  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);
    $conv_image->Set('type'=>'TrueColor');
  $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 135  sub handler { Line 137  sub handler {
     my $imcolor=&get_color_from_hexstring($image,$color);      my $imcolor=&get_color_from_hexstring($image,$color);
     if (!defined($thickness)) { $thickness=1; }      if (!defined($thickness)) { $thickness=1; }
     $image->setThickness($thickness);      $image->setThickness($thickness);
     $image->setAntiAliased($imcolor);  #    $image->setAntiAliased($imcolor);
     $image->line($x1,$y1,$x2,$y2,gdAntiAliased);      $image->line($x1,$y1,$x2,$y2,$imcolor);
  } elsif ($type eq 'RECTANGLE') {   } elsif ($type eq 'RECTANGLE') {
     my ($x1,$y1,$x2,$y2,$color,$thickness,$filled)=      my ($x1,$y1,$x2,$y2,$color,$thickness,$filled)=
  split(':',$ENV{"cgi.$id.OBJ$i"});   split(':',$ENV{"cgi.$id.OBJ$i"});
Line 152  sub handler { Line 154  sub handler {
  $image->rectangle($x1,$y1,$x2,$y2,$imcolor);   $image->rectangle($x1,$y1,$x2,$y2,$imcolor);
     }      }
  } elsif ($type eq 'POLYGON') {   } elsif ($type eq 'POLYGON') {
     my ($color,$width,$open)=split(':',$ENV{"cgi.$id.OBJ$i"});      my ($color,$width,$open,$filled)=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 && lc ($open ne 'no')) ?
      (new GD::Polyline) : (new GD::Polygon));
     my $added=0;      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]+)\)/);
Line 164  sub handler { Line 167  sub handler {
           
     $image->setThickness($width);      $image->setThickness($width);
     if ($added) {      if ($added) {
  if ($open) {   if ($open && lc($open) ne 'no') {
     $image->polydraw($polygon,$imcolor);      $image->polydraw($polygon,$imcolor);
    } elsif ($filled && lc($filled) ne 'no') {
       $image->filledPolygon($polygon,$imcolor);
  } else {   } else {
     $image->polygon($polygon,$imcolor);      $image->polygon($polygon,$imcolor);
  }   }
Line 190  sub handler { Line 195  sub handler {
     my $imcolor=&get_color_from_hexstring($image,$color);      my $imcolor=&get_color_from_hexstring($image,$color);
     $image->fill($x,$y,$imcolor);      $image->fill($x,$y,$imcolor);
  } elsif ($type eq 'IMAGE') {   } elsif ($type eq 'IMAGE') {
     my ($x,$y,$file,$transparent)=split(':',$ENV{"cgi.$id.OBJ$i"});      my ($x,$y,$file,$transparent,$srcX,$srcY,$destW,$destH,$srcW,
    $srcH)=split(':',$ENV{"cgi.$id.OBJ$i"});
     $file=&Apache::lonnet::unescape($file);      $file=&Apache::lonnet::unescape($file);
     if (!defined($transparent)) { $transparent=1; }      if (!defined($transparent)) { $transparent=1; }
     my $subimage=&get_image($file,$transparent);      my $subimage=&get_image($file,$transparent);
Line 199  sub handler { Line 205  sub handler {
  $file);   $file);
  next;   next;
     }      }
     $image->copy($subimage,$x,$y,0,0,$subimage->getBounds());      if (!defined($srcW) or !$srcW) {$srcW=($subimage->getBounds())[0];}
       if (!defined($srcH) or !$srcH) {$srcH=($subimage->getBounds())[1];}
       if (!defined($destW) or !$destW) { $destW=$srcW; }
       if (!defined($destH) or !$destH) { $destH=$srcH; }
       $image->copyResized($subimage,$x,$y,$srcX,$srcY,$destW,$destH,
    $srcW,$srcH);
  } elsif ($type eq 'LABEL') {   } elsif ($type eq 'LABEL') {
     my ($x,$y,$text,$font,$color,$direction)=      my ($x,$y,$text,$font,$color,$direction)=
  split(':',$ENV{"cgi.$id.OBJ$i"});   split(':',$ENV{"cgi.$id.OBJ$i"});
Line 219  sub handler { Line 230  sub handler {
     } elsif ($font eq 'large') {      } elsif ($font eq 'large') {
  $height=GD::Font->Large->height;   $height=GD::Font->Large->height;
  $fontref=GD::gdLargeFont;   $fontref=GD::gdLargeFont;
     } elsif ($font eq 'giant' || !defined($font)) {      } elsif ($font eq 'giant' || !$font) {
  $height=GD::Font->Giant->height;   $height=GD::Font->Giant->height;
  $fontref=GD::gdGiantFont;   $fontref=GD::gdGiantFont;
     } else {      } else {

Removed from v.1.19  
changed lines
  Added in v.1.21


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