Diff for /loncom/homework/randomlabel.pm between versions 1.71 and 1.72

version 1.71, 2005/04/12 21:41:28 version 1.72, 2005/04/18 21:41:51
Line 59  use strict; Line 59  use strict;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http);
   use Image::Magick;
   
 my %args;  my %args;
 my $cgi_id;  my $cgi_id;
Line 165  sub end_bgimg { Line 166  sub end_bgimg {
     }      }
     return $result;      return $result;
 }  }
   my $scale_factor; # image scale factor.
 sub make_eps_image {  sub make_eps_image {
     my ($bgimg,$parstack,$safeeval,$depth)=@_;      my ($bgimg,$parstack,$safeeval,$depth)=@_;
     my ($path,$file) = &Apache::londefdef::get_eps_image($bgimg);      my ($path,$file) = &Apache::londefdef::get_eps_image($bgimg);
Line 179  sub make_eps_image { Line 180  sub make_eps_image {
  ' mm \epsffile{'.$path.$file.   ' mm \epsffile{'.$path.$file.
  '}\setlength{\unitlength}{1mm}'."\n".'  \begin{picture}('.   '}\setlength{\unitlength}{1mm}'."\n".'  \begin{picture}('.
  $width_param.','.$height_param.')(0,-'.$height_param.')'."\n";   $width_param.','.$height_param.')(0,-'.$height_param.')'."\n";
       my $magick = Image::Magick->new;
       $magick->Read($bgimg);
       my $initial_width = $magick->Get('width');
       $scale_factor = $width_param / $initial_width;
     return $result;      return $result;
 }  }
   
Line 226  sub start_labelgroup { Line 231  sub start_labelgroup {
     return $result;      return $result;
 }  }
   
   #
   #   Utility sub to compute the width of a label.
   #
   sub get_label_width {
       my $label         = shift;
       &Apache::lonxml::debug("image label = $label");
       if (-e $label) {
    &Apache::lonxml::debug("$label exists");
       } else {
    &Apache::lonxml::debug("$label does not exist");
       }
       my $magick        = Image::Magick->new;
       $magick->Read($label);
       my $pixel_width   = $magick->Get('width');
       return $pixel_width * $scale_factor;
       
   
   }
 sub add_vars {  sub add_vars {
     my ($name,$order,$label,$labelorder,$value,$image,$safeeval) = @_;      my ($name,$order,$label,$labelorder,$value,$image,$safeeval) = @_;
     if (!defined($name) || $name eq '') { return; }      if (!defined($name) || $name eq '') { return; }
Line 309  sub end_labelgroup { Line 332  sub end_labelgroup {
     } elsif ( $type eq 'image') {      } elsif ( $type eq 'image') {
  my ($path,$file) = &Apache::londefdef::get_eps_image($label);   my ($path,$file) = &Apache::londefdef::get_eps_image($label);
  my $image_name = $path.$file;   my $image_name = $path.$file;
  $result .=  '\includegraphics{'   my $label_width = get_label_width($label);
   
    $result .=  '\includegraphics[width='.$label_width.'mm]{'
             .$image_name."}}\n";              .$image_name."}}\n";
  &add_vars($gname,$i,   &add_vars($gname,$i,
   $Apache::randomlabel::description[$idx_arr[$i]],    $Apache::randomlabel::description[$idx_arr[$i]],

Removed from v.1.71  
changed lines
  Added in v.1.72


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