phpbar.de logo

Mailinglisten-Archive

[php] Problem mit ImageTTFText

[php] Problem mit ImageTTFText

=?iso-8859-1?Q?Bj=F6rn_Schotte?= baerli_(at)_main.de
Wed, 25 Aug 1999 15:11:56 +0200


Hi,

ich habe mir eine Funktion[1] geschrieben, die aus
einem übergebenen Textstring, einem TTF-Font, der
Fontgröße, Vorder- und Hintergrundfarbe ein GIF
ausgibt.

Soweit, so gut. Es ergibt sich allerdings das
Problem, daß der Schriftzug (abhängig von der
Schriftgröße) nicht in der Mitte dieses GIFs
erscheint. Je nach Fontgröße muß ich die x-
Koordinate bei ImageTTFText von Hand variieren. Ich
hätte es aber gerne, daß es den Text automatisch
in der Mitte plaziert.

Wer kann mir helfen?

[1]:
<?

# $str - Der zu zeichnende Text, urlencoded
# $fontname - Fontname, z.B. "../layout/ARIAL.TTF"
# $size - Fonthöhe
# $backcol - array mit red, green, blue Werten
# $txtcol - the same
   
function GIFText($str,$fontname,$fontsize,$backcol,$txtcol) {
  Header("Content-Type: image/gif");
  $a=ImageTTFBBox($fontsize,0,$fontname,$str);
  $width=$a[2]+1;
  #$height=abs($a[3]+$a[5])+1;
  $height=$fontsize+8;
  $im=ImageCreate($width,$height);
  $bgcol = ImageColorAllocate($im,$backcol[red],$backcol[green],$backcol[blue]);
  $fgcol = ImageColorAllocate($im,$txtcol[red],$txtcol[green],$txtcol[blue]);
  ImageTTFText($im,$fontsize,0,0,$height-8,$fgcol,$fontname,$str);
  ImageGIF($im);
  ImageDestroy($im);
}

# Default-Wert, falls kein Parameter $fontname übergeben wurde.
if (!isset($fontname)) { $fontname="../layout/arialbd.ttf"; }

GIFText(urldecode($txt),urldecode($fontname),$size,
        array("red"=>0,"green"=>0,"blue"=>0),
        array("red"=>255,"green"=>255,"blue"=>0)
       );
?>


php::bar PHP Wiki   -   Listenarchive