version 1.72, 2005/04/18 21:41:51
|
version 1.73, 2005/05/16 21:58:19
|
Line 60 use Apache::edit;
|
Line 60 use Apache::edit;
|
use Apache::File(); |
use Apache::File(); |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
use Image::Magick; |
use Image::Magick; |
|
use Apache::lonplot; |
|
|
my %args; |
my %args; |
my $cgi_id; |
my $cgi_id; |
|
my $scale_factor; # image scale factor. |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::randomlabel',('randomlabel','labelgroup','location','label','bgimg')); |
&Apache::lonxml::register('Apache::randomlabel',('randomlabel','labelgroup','location','label','bgimg')); |
Line 161 sub end_bgimg {
|
Line 163 sub end_bgimg {
|
$bgimg=&Apache::imageresponse::clean_up_image($bgimg); |
$bgimg=&Apache::imageresponse::clean_up_image($bgimg); |
$args{"cgi.$cgi_id.BGIMG"}=&Apache::lonnet::escape($bgimg); |
$args{"cgi.$cgi_id.BGIMG"}=&Apache::lonnet::escape($bgimg); |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result.=&make_eps_image($bgimg,$parstack,$safeeval,-2); |
# Some bg images can create latex for us... e.g. gnuplot. |
|
# If it looks like we have some latex use that, |
|
# otherwise, assume this is a resource name that must |
|
# be converted into the latex to create an eps insertion. |
|
# |
|
my $src = $bgimg; |
|
$src =~ s/\s+$//s; |
|
$src =~ s/^\s+//s; |
|
|
|
|
|
if ($src =~ /^\\graphicspath/) { |
|
$height_param = $Apache::lonplot::plot{'height'}*0.3; |
|
$width_param = $Apache::lonplot::plot{'width'}*0.3; |
|
&Apache::lonxml::debug("height $height_param"); |
|
&Apache::lonxml::debug("Width $width_param"); |
|
$scale_factor=1.0; |
|
my $dirty_width = $width_param + 5; |
|
$result .= '\parbox{'.$dirty_width.'mm}{'; |
|
$result .= $src; |
|
$result .= '\begin{picture}('."$height_param,$width_param)"; |
|
$result .= "(0,-$height_param)"; |
|
} else { |
|
|
|
|
|
$result.=&make_eps_image($bgimg,$parstack,$safeeval,-2); |
|
} |
} |
} |
} |
} |
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)=@_; |
|
&Apache::lonxml::debug("image prior to get_eps_image: $bgimg"); |
my ($path,$file) = &Apache::londefdef::get_eps_image($bgimg); |
my ($path,$file) = &Apache::londefdef::get_eps_image($bgimg); |
|
&Apache::lonxml::debug("image after: $bgimg"); |
($height_param,$width_param)= |
($height_param,$width_param)= |
&Apache::londefdef::image_size($bgimg,0.3,$parstack,$safeeval, |
&Apache::londefdef::image_size($bgimg,0.3,$parstack,$safeeval, |
$depth,1); |
$depth,1); |
|
|
|
&Apache::lonxml::debug("Image size: $height_param x $width_param"); |
|
|
my $dirtywidth=$width_param+5; |
my $dirtywidth=$width_param+5; |
my $result ="\n".'\vspace*{2mm}\noindent'."\n". |
my $result ="\n".'\vspace*{2mm}\noindent'."\n". |
'\parbox{'.$dirtywidth. |
'\parbox{'.$dirtywidth. |
Line 183 sub make_eps_image {
|
Line 214 sub make_eps_image {
|
my $magick = Image::Magick->new; |
my $magick = Image::Magick->new; |
$magick->Read($bgimg); |
$magick->Read($bgimg); |
my $initial_width = $magick->Get('width'); |
my $initial_width = $magick->Get('width'); |
|
&Apache::lonxml::debug("ImageMagick thinks width is; $initial_width"); |
$scale_factor = $width_param / $initial_width; |
$scale_factor = $width_param / $initial_width; |
return $result; |
return $result; |
} |
} |