version 1.33, 2024/04/04 17:33:01
|
version 1.36, 2024/04/05 04:05:08
|
Line 129 the start and extant of the region in fi
|
Line 129 the start and extant of the region in fi
|
|
|
=item LABEL |
=item LABEL |
|
|
x:y:text:font:color:direction |
x:y:text:font:color:direction:rotation |
|
|
=over 4 |
=over 4 |
|
|
Line 146 installed TTF font and point size
|
Line 146 installed TTF font and point size
|
|
|
either B<horizontal> or B<vertical> |
either B<horizontal> or B<vertical> |
|
|
|
=item rotation |
|
|
|
number of degrees to rotate the text, relative to the horizontal. |
|
only used if font attribute is set to a freetype font (e.g., helvetica 12), |
|
and in that case, if set to a valid value, overrides value set for direction. |
|
|
=back |
=back |
|
|
=item POLYGON |
=item POLYGON |
Line 296 sub add_click {
|
Line 302 sub add_click {
|
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
$r->content_type('image/png'); |
|
$r->send_http_header; |
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); |
|
|
Line 307 sub handler {
|
Line 311 sub handler {
|
} else { |
} else { |
$prefix="cgi.$env{'form.token'}."; |
$prefix="cgi.$env{'form.token'}."; |
} |
} |
|
my $epsfile; |
|
if (defined($env{$prefix."EPSFILE"})) { |
|
my $user = $env{'user.name'}.'_'.$env{'user.domain'}; |
|
if ($env{$prefix."EPSFILE"} =~ /^\Q$user\E_\d+_\d+_\d+_drawimage\.eps$/) { |
|
$epsfile = $Apache::lonnet::perlvar{'lonPrtDir'}.'/'.$env{$prefix."EPSFILE"}; |
|
} else { |
|
&Apache::lonnet::logthis('Unable to create eps file for image object for -'. |
|
$env{'form.token'}.'- for '.$user.' as EPSFILE has '. |
|
'unexpected value'); |
|
return OK; |
|
} |
|
} |
|
unless ($epsfile) { |
|
$r->content_type('image/png'); |
|
$r->send_http_header; |
|
} |
|
|
my $image; |
my $image; |
if (defined($env{$prefix."BGIMG"})) { |
if (defined($env{$prefix."BGIMG"})) { |
Line 420 sub handler {
|
Line 440 sub handler {
|
$image->copyResized($subimage,$x,$y,$srcX,$srcY,$destW,$destH, |
$image->copyResized($subimage,$x,$y,$srcX,$srcY,$destW,$destH, |
$srcW,$srcH); |
$srcW,$srcH); |
} elsif ($type eq 'LABEL') { |
} elsif ($type eq 'LABEL') { |
my ($x,$y,$text,$font,$color,$direction)= |
my ($x,$y,$text,$font,$color,$direction,$rotation)= |
split(':',$env{$prefix."OBJ$i"}); |
split(':',$env{$prefix."OBJ$i"}); |
$text=&unescape($text); |
$text=&unescape($text); |
my $imcolor=&get_color_from_hexstring($image,$color); |
my $imcolor=&get_color_from_hexstring($image,$color); |
Line 451 sub handler {
|
Line 471 sub handler {
|
} elsif ($type eq 'ttf') { |
} elsif ($type eq 'ttf') { |
my ($fontname,$ptsize)=split(/\s+/,$font); |
my ($fontname,$ptsize)=split(/\s+/,$font); |
my $angle = 0; |
my $angle = 0; |
if ($direction eq 'vertical') { |
if ($rotation =~ /^(\-|\+|)\d+(|\.\d*)$/) { |
|
$angle = Math::Trig::deg2rad($rotation); |
|
} elsif ($direction eq 'vertical') { |
$angle = Math::Trig::deg2rad(90); |
$angle = Math::Trig::deg2rad(90); |
} elsif ($direction eq 'horizontal') { |
} elsif ($direction eq 'horizontal') { |
$angle = 0; |
$angle = 0; |
Line 464 sub handler {
|
Line 486 sub handler {
|
} |
} |
if (exists($env{'form.clickdata'})) { &add_click($image); } |
if (exists($env{'form.clickdata'})) { &add_click($image); } |
$image->setThickness(1); |
$image->setThickness(1); |
$r->print($image->png); |
if ($epsfile) { |
|
if (open(my $pipe, "| convert png:- $epsfile")) { |
|
print $pipe $image->png; |
|
close($pipe); |
|
} else { |
|
&Apache::lonnet::logthis("randomlylabel unable to open pipe to convert png to eps"); |
|
} |
|
} else { |
|
$r->print($image->png); |
|
} |
return OK; |
return OK; |
} |
} |
|
|