[LON-CAPA-cvs] cvs: loncom /homework randomlylabel.pm
raeburn
raeburn at source.lon-capa.org
Thu Apr 4 13:33:01 EDT 2024
raeburn Thu Apr 4 17:33:01 2024 EDT
Modified files:
/loncom/homework randomlylabel.pm
Log:
- Modify changes in rev. 1.19 so freetype fonts will be supported in font
attribute for text tag included in drawimage.
Index: loncom/homework/randomlylabel.pm
diff -u loncom/homework/randomlylabel.pm:1.32 loncom/homework/randomlylabel.pm:1.33
--- loncom/homework/randomlylabel.pm:1.32 Tue May 23 03:07:34 2017
+++ loncom/homework/randomlylabel.pm Thu Apr 4 17:33:01 2024
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# randomlabel.png: composite together text and images into 1 image
#
-# $Id: randomlylabel.pm,v 1.32 2017/05/23 03:07:34 raeburn Exp $
+# $Id: randomlylabel.pm,v 1.33 2024/04/04 17:33:01 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -201,6 +201,7 @@
use Image::Magick;
use Apache::Constants qw(:common);
use Apache::loncommon();
+use Math::Trig();
use GD;
use GD::Polyline();
use Apache::lonnet;
@@ -208,6 +209,16 @@
use LONCAPA;
use LONCAPA::LWPReq;
+#
+# Note: Math::Trig is included in the standard perl package for many distros.
+#
+# For distros which use rpm the following command will show whether Trig.pm is
+# included in the system perl: rpm -q --provides perl |grep Math::Trig
+#
+# For distros which use deb the following command will show whether Trig.pm is
+# included in the system perl: dpkg -S perl |grep Math\/Trig\.pm
+#
+
sub get_image {
my ($imgsrc,$set_trans)=@_;
my $image;
@@ -430,7 +441,7 @@
} elsif ($font eq 'giant' || !$font) {
$height=GD::Font->Giant->height;
$fontref=GD::gdGiantFont;
- } else {
+ } elsif ($image->useFontConfig(1)) {
$type='ttf';
}
if ($type eq 'normal' && $direction eq 'vertical') {
@@ -439,7 +450,13 @@
$image->string($fontref,$x,$y-$height,$text,$imcolor);
} elsif ($type eq 'ttf') {
my ($fontname,$ptsize)=split(/\s+/,$font);
- $image->stringFT($imcolor,$fontname,$ptsize,90,$x,$y,$text);
+ my $angle = 0;
+ if ($direction eq 'vertical') {
+ $angle = Math::Trig::deg2rad(90);
+ } elsif ($direction eq 'horizontal') {
+ $angle = 0;
+ }
+ $image->stringFT($imcolor,$fontname,$ptsize,$angle,$x,$y,$text);
}
} else {
&Apache::lonnet::logthis("randomlylabel unable to handle object of type $type");
More information about the LON-CAPA-cvs
mailing list