Michael: Schrift, Satz zentriert im generiertem Bild integrieren

Beitrag lesen

Ich habe ein kleines Script das ein Bild erzeugt. In dieses soll ein Satz in unterschiedlicher Länge integriert werden. Der dann zentriert im Bild eingefügt wird.

Ich habe zwei Probleme

  1. Wie kann ich die Schrittgröße ermittel die genau die breite meines Bildes dann ist? Im Augenblick Schätze ich das ganze recht schlecht als recht ;-)

  2. Habe ich die Möglichkeit wenn es ein länger Text ist automatisch dann zwei Zeilen einzufügen?

 $text = 'Das ist ein Test'; 
 $zahl = strlen($text);
 
 if($zahl<10){$schriftgroesse = 55;}
 elseif($zahl<13){$schriftgroesse = 40;}
 elseif($zahl<16){$schriftgroesse = 30;}
 elseif($zahl<19){$schriftgroesse = 24;}
 else{$schriftgroesse = 20;}

 
 $image = imagecreate (500, 300);
 $back = ImageColorAllocate ($image, 255, 255, 255);
 $font = ImageColorAllocate ($image, 0, 0, 0);
 

 
 $einzug = 50;
 $von_oben = 160;
 
 $ausgabe=imagettfbbox ( $schriftgroesse , 0 , "font/OpenSans-ExtraBold.ttf" , $text );
 

 ImageTTFText ($image, $schriftgroesse, 0, (500-$ausgabe[2])/2, (300-$ausgabe[5])/2, $font,"font/OpenSans-ExtraBold.ttf",$text);
 header("Content-type: image/PNG");
 ImagePNG ($image);
 ImageDestroy ($image);