Glad to hear you got it working 😊
From the earlier comments about Indirect Object Syntax, I would suggest you change:
$outim = new GD::Image($width, $height);
...
@bounds = new GD::Image->stringFT($fgcolor,$fontname,$ptsize,$angle,$x
+,$y,$string);
and instead use
$outim = GD::Image->new($width, $height);
...
@bounds = GD::Image->new->stringFT($fgcolor,$fontname,$ptsize,$angle,$
+x,$y,$string);
As a separate observation, I find this a little difficult to read and unneccesasy
$string = ucfirst($first) . ($middle ne '' ? ' ' . ucfirst($middle
+) : '') . ' ' . ucfirst($last);
I would personally rewrite it as:
$string = ucfirst($first) . ($middle ? ' ' . ucfirst($middle) : ''
+) . ' ' . ucfirst($last);
As an empty string $middle will test false.
Because of the data I deal with, I also force names to be lowercase before adding the initial capital. You may not need to depending on your data and whether you consider names having legitimate capitals in them being a problem - like "O'Neil" (I should see if a module exists to deal with these and write one if not)
$string = ucfirst(lc($first));
|