text.t
上传用户:qdrechuli
上传日期:2022-08-01
资源大小:917k
文件大小:4k
源码类别:

视频捕捉/采集

开发平台:

Visual C++

  1. BEGIN { $| = 1; print "1..18n"; }
  2. END {print "not ok 1n" unless $loaded;}
  3. use GD;
  4. use GD::Text;
  5. $loaded = 1;
  6. print "ok 1n";
  7. $i = 2;
  8. # Test the default setup
  9. $t = GD::Text->new();
  10. print 'not ' unless ($t->is_builtin);
  11. printf "ok %dn", $i++;
  12. # Check some size parameters
  13. $t->set_text('Some text');
  14. ($w, $h, $cu, $cd) = $t->get(qw(width height char_up char_down));
  15. print 'not ' unless ($w==54 && $h==13 && $cu==13 && $cd==0);
  16. printf "ok %dn", $i++;
  17. # Change the text
  18. $t->set_text('Some other text');
  19. $w = $t->get('width');
  20. print 'not ' unless ($w==90 && $h==13 && $cu==13 && $cd==0);
  21. printf "ok %dn", $i++;
  22. # Test loading of other builtin font
  23. $t->set_font(gdGiantFont);
  24. print 'not ' unless ($t->is_builtin);
  25. printf "ok %dn", $i++;
  26. # Test the width method
  27. $w = $t->width('Foobar Banana');
  28. print 'not ' unless (defined $w and $w == 117);
  29. printf "ok %dn", $i++;
  30. # And make sure it didn't change the text in the object
  31. $text = $t->get('text');
  32. print 'not ' unless (defined $text and $text eq 'Some other text');
  33. printf "ok %dn", $i++;
  34. # Now check the Giant Font parameters
  35. ($w, $h, $cu, $cd) = $t->get(qw(width height char_up char_down));
  36. print 'not ' unless ($w==135 && $h==15 && $cu==15 && $cd==0);
  37. printf "ok %dn", $i++;
  38. # Check that constructor with argument works
  39. $t = GD::Text->new(text => 'FooBar Banana', font => gdGiantFont);
  40. ($w) = $t->get(qw(width)) if defined $t;
  41. #print "$t, $wn";
  42. print 'not ' unless (defined $t && defined $w && $w==117);
  43. printf "ok %dn", $i++;
  44. # Check multiple fonts in one go, number 1
  45. $rc = $t->set_font(['foo', gdGiantFont, 'bar', gdTinyFont]);
  46. print 'not ' unless $rc;
  47. printf "ok %dn", $i++;
  48. if ($t->can_do_ttf)
  49. {
  50. # Test loading of TTF
  51. $rc = $t->set_font('cetus.ttf', 18);
  52. print 'not ' unless ($rc && $t->is_ttf);
  53. printf "ok %dn", $i++;
  54. # Check some size parameters
  55. @p = $t->get(qw(width height char_up char_down space));
  56. print 'not ' unless ("@p" eq "173 30 24 6 7");
  57. printf "ok %dn", $i++;
  58. # Check that constructor with argument works
  59. $t = GD::Text->new(text => 'FooBar', font =>'cetus');
  60. @p = $t->get(qw(width height char_up char_down space)) if defined $t;
  61. #print "$i: @pn";
  62. print 'not ' unless (defined $t && "@p" eq "45 16 13 3 4");
  63. printf "ok %dn", $i++;
  64. # Check multiple fonts in one go, number 2
  65. $rc = $t->set_font(['cetus', gdGiantFont, 'bar'], 24);
  66. @p = $t->get('font', 'ptsize');
  67. #print "$i : $rc - @pn";
  68. print 'not ' unless $rc && "@p" eq "./cetus.ttf 24";
  69. printf "ok %dn", $i++;
  70. }
  71. else
  72. {
  73. for (1 .. 4) { printf "ok %d # Skipn", $i++ };
  74. }
  75. # Font Path tests
  76. #
  77. # Only do this if we have TTF font support, and if we're on a unix-like
  78. # OS, will adapt this once I have support for other OS's for the font
  79. # path.
  80. if ($t->can_do_ttf && $^O &&
  81. $^O !~ /^MS(DOS|Win)/i && $^O !~ /VMS/i && 
  82. $^O !~ /^MacOS/i && $^O !~ /os2/i && $^O !~ /^AmigaOS/i)
  83. {
  84. # Font Path
  85. $t->font_path('demo/..:/tmp');
  86. $rc = GD::Text::_find_TTF('cetus', 18);
  87. #print "$i: $rcn";
  88. print 'not ' unless $rc eq './cetus.ttf';
  89. printf "ok %dn", $i++;
  90. $t->font_path('demo/..:.:/tmp');
  91. $rc = GD::Text::_find_TTF('cetus', 18);
  92. #print "$i: $rcn";
  93. print 'not ' unless $rc eq 'demo/../cetus.ttf';
  94. printf "ok %dn", $i++;
  95. $rc = GD::Text::_find_TTF('/usr/foo/font.ttf', 18);
  96. #print "$i: $rcn";
  97. print 'not ' unless $rc eq '/usr/foo/font.ttf';
  98. printf "ok %dn", $i++;
  99. $t->font_path(undef);
  100. $rc = GD::Text::_find_TTF('cetus.ttf', 18);
  101. #print "$i: $rcn";
  102. print 'not ' unless $rc eq './cetus.ttf';
  103. printf "ok %dn", $i++;
  104. }
  105. else
  106. {
  107. # Grumble to 5.004_04, cannot use for as modifier
  108. for (1 .. 4) { printf "ok %d # Skipn", $i++ };
  109. }