Mailinglisten-Archive |
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