--- loncom/xml/londefdef.pm 2005/05/17 23:11:59 1.270 +++ loncom/xml/londefdef.pm 2005/05/17 23:27:25 1.271 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.270 2005/05/17 23:11:59 foxr Exp $ +# $Id: londefdef.pm,v 1.271 2005/05/17 23:27:25 foxr Exp $ # # # Copyright Michigan State University Board of Trustees @@ -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); }