--- loncom/xml/londefdef.pm 2005/04/07 06:56:27 1.267
+++ loncom/xml/londefdef.pm 2005/05/18 16:34:03 1.272
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.267 2005/04/07 06:56:27 albertel Exp $
+# $Id: londefdef.pm,v 1.272 2005/05/18 16:34:03 albertel Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -153,7 +153,7 @@ sub start_html {
my $currentstring = '';
my $options=$env{'course.'.$env{'request.course.id'}.'.tthoptions'};
&Apache::lontexconvert::init_tth();
- if ($target eq 'web' || $target eq 'edit') {
+ if ($target eq 'web' || $target eq 'edit' || $target eq 'webgrade' ) {
$currentstring = &Apache::lonxml::xmlbegin();
} elsif ($target eq 'tex') {
$currentstring .= '\documentclass[letterpaper]{article}';
@@ -3766,21 +3766,33 @@ sub image_replication {
}
return '';
}
+#
+# Get correct sizing parameter for an image given
+# it's initial ht. and wid. This allows sizing of
+# images that are generated on-the-fly (e.g. gnuplot)
+# as well as serving as a utility for image_size.
+#
+# Parameter:
+# height_param
+# width_param - Initial picture dimensions.
+# scaling - A scale factor.
+# parstack,
+# safeeval,
+# depth,
+# cis - The usual xml stuff ???
+#
+# Returns:
+# height, width - new dimensions.
+#
+sub resize_image {
+ my ($height_param, $width_param, $scaling,
+ $parstack, $safeeval, $depth, $cis) = @_;
-sub image_size {
- my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_;
+ # First apply the scaling...
+
+ $height_param = $height_param * $scaling;
+ $width_param = $width_param * $scaling;
- #size of image from gif/jpg/jpeg/png
- my $ressrc=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
- if (-e $ressrc) {
- $src = $ressrc;
- }
- my $image = Image::Magick->new;
- my $current_figure = $image->Read($src);
- my $width_param = $image->Get('width') * $scaling;;
- my $height_param = $image->Get('height') * $scaling;
- &Apache::lonxml::debug("Image magick says: $src : Height = $height_param width = $width_param");
- undef($image);
#do we have any specified LaTeX size of the picture?
my $toget='TeXwidth';
if ($cis) {
@@ -3825,6 +3837,29 @@ sub image_size {
$height_param=$width_param/$old_width_param*$height_param;
}
}
+
+ return ($height_param, $width_param);
+}
+
+sub image_size {
+ my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_;
+
+ #size of image from gif/jpg/jpeg/png
+ my $ressrc=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
+ if (-e $ressrc) {
+ $src = $ressrc;
+ }
+ my $image = Image::Magick->new;
+ my $current_figure = $image->Read($src);
+ my $width_param = $image->Get('width');
+ my $height_param = $image->Get('height');
+ &Apache::lonxml::debug("Image magick says: $src : Height = $height_param width = $width_param");
+ undef($image);
+
+ ($height_param, $width_param) = &resize_image($height_param, $width_param,
+ $scaling, $parstack, $safeeval,
+ $depth, $cis);
+
return ($height_param, $width_param);
}
@@ -3843,10 +3878,10 @@ sub image_height {
sub get_eps_image {
my ($src)=@_;
my $orig_src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1], $src);
- &Apache::lonxml::debug("get_eps_image: Original image: $orig_src
");
+ &Apache::lonxml::debug("get_eps_image: Original image: $orig_src");
$src=~s/\.(gif|png|jpg|jpeg)$/\.eps/i;
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
- &Apache::lonxml::debug("Filelocation gives; $src
");
+ &Apache::lonxml::debug("Filelocation gives: $src");
if (! -e $src) {
&Apache::lonxml::debug("$src does not exist");
if (&Apache::lonnet::repcopy($src) ne 'ok' ) {
@@ -3854,9 +3889,11 @@ sub get_eps_image {
#if replication failed try to find ps file
$src=~s/\.eps$/\.ps/;
&Apache::lonxml::debug("Now looking for $src");
- #if no ps file try to replicate it
- if (not -e $src &&
- &Apache::lonnet::repcopy($src) ne 'ok') {
+ #if no ps file try to replicate it.
+ my $didrepcopy = &Apache::lonnet::repcopy($src);
+ &Apache::lonxml::debug("repcopy of $src ... $didrepcopy");
+ if ( (not -e $src) ||
+ ($didrepcopy ne 'ok')) {
&Apache::lonxml::debug("Failed to find or replicate $src");
#if replication failed try to produce eps file dynamically
@@ -3865,7 +3902,7 @@ sub get_eps_image {
open(FILE,">>/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat");
my $newsrc=$orig_src;
$newsrc =~ s|(.*)/res/|/home/httpd/html/res/|;
- &Apache::lonxml::debug("queueing $newsrc for dynamic eps production.
");
+ &Apache::lonxml::debug("queueing $newsrc for dynamic eps production.");
print FILE "$newsrc\n";
close FILE;
$src=~s|/home/httpd/html/res|/home/httpd/prtspool|;