version 1.269, 2005/04/29 21:22:33
|
version 1.272, 2005/05/18 16:34:03
|
Line 3766 sub image_replication {
|
Line 3766 sub image_replication {
|
} |
} |
return ''; |
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 { |
# First apply the scaling... |
my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_; |
|
|
$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? |
#do we have any specified LaTeX size of the picture? |
my $toget='TeXwidth'; |
my $toget='TeXwidth'; |
if ($cis) { |
if ($cis) { |
Line 3825 sub image_size {
|
Line 3837 sub image_size {
|
$height_param=$width_param/$old_width_param*$height_param; |
$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); |
return ($height_param, $width_param); |
} |
} |
|
|
Line 3843 sub image_height {
|
Line 3878 sub image_height {
|
sub get_eps_image { |
sub get_eps_image { |
my ($src)=@_; |
my ($src)=@_; |
my $orig_src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1], $src); |
my $orig_src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1], $src); |
&Apache::lonxml::debug("get_eps_image: Original image: $orig_src<BR />"); |
&Apache::lonxml::debug("get_eps_image: Original image: $orig_src"); |
$src=~s/\.(gif|png|jpg|jpeg)$/\.eps/i; |
$src=~s/\.(gif|png|jpg|jpeg)$/\.eps/i; |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
&Apache::lonxml::debug("Filelocation gives; $src <BR />"); |
&Apache::lonxml::debug("Filelocation gives: $src"); |
if (! -e $src) { |
if (! -e $src) { |
&Apache::lonxml::debug("$src does not exist"); |
&Apache::lonxml::debug("$src does not exist"); |
if (&Apache::lonnet::repcopy($src) ne 'ok' ) { |
if (&Apache::lonnet::repcopy($src) ne 'ok' ) { |
Line 3854 sub get_eps_image {
|
Line 3889 sub get_eps_image {
|
#if replication failed try to find ps file |
#if replication failed try to find ps file |
$src=~s/\.eps$/\.ps/; |
$src=~s/\.eps$/\.ps/; |
&Apache::lonxml::debug("Now looking for $src"); |
&Apache::lonxml::debug("Now looking for $src"); |
#if no ps file try to replicate it |
#if no ps file try to replicate it. |
if (not -e $src || |
my $didrepcopy = &Apache::lonnet::repcopy($src); |
&Apache::lonnet::repcopy($src) ne 'ok') { |
&Apache::lonxml::debug("repcopy of $src ... $didrepcopy"); |
|
if ( (not -e $src) || |
|
($didrepcopy ne 'ok')) { |
&Apache::lonxml::debug("Failed to find or replicate $src"); |
&Apache::lonxml::debug("Failed to find or replicate $src"); |
|
|
#if replication failed try to produce eps file dynamically |
#if replication failed try to produce eps file dynamically |
Line 3865 sub get_eps_image {
|
Line 3902 sub get_eps_image {
|
open(FILE,">>/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat"); |
open(FILE,">>/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat"); |
my $newsrc=$orig_src; |
my $newsrc=$orig_src; |
$newsrc =~ s|(.*)/res/|/home/httpd/html/res/|; |
$newsrc =~ s|(.*)/res/|/home/httpd/html/res/|; |
&Apache::lonxml::debug("queueing $newsrc for dynamic eps production. <BR/>"); |
&Apache::lonxml::debug("queueing $newsrc for dynamic eps production."); |
print FILE "$newsrc\n"; |
print FILE "$newsrc\n"; |
close FILE; |
close FILE; |
$src=~s|/home/httpd/html/res|/home/httpd/prtspool|; |
$src=~s|/home/httpd/html/res|/home/httpd/prtspool|; |