[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