Simon: Bild erstellen und Breite automatisch anpassen

Hi,
hab da ein kleines Probleme.
Und zwar ich erstell mir mit dem:

<?php  
Header("Content-Type: image/png");  
  
  $text ="Text"  
  $width = 100;  
  $height = 50;  
  $img = ImageCreate($width, $height);  
  
  $black = ImageColorAllocate($img, 0, 0, 0);  
  $white = ImageColorAllocate($img, 255, 255, 255);  
  
  ImageFill($img, 0, 0, $black);  
  ImageString($img, 3, 26, 20, $text, $white);  
  
  ImagePNG($img);  
  ImageDestroy($img);  
  
  
?>

ein bild und füge einen Text ein.
Da der Text nicht immer gleich lang ist, müsste sich die Breite automatisch anpassen.

Kann mir da jemand vielleicht helfen ?

MfG
SImon

  1. Hi,

    ImageString($img, 3, 26, 20, $text, $white);

    Da der Text nicht immer gleich lang ist, müsste sich die Breite automatisch anpassen.

    Kann mir da jemand vielleicht helfen ?

    Wenn du statt imagestring imagettftext benutzen magst - dann kannst du imagettfbbox benutzen, um die Maße des Textes (vorab) zu ermitteln.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Wenn du statt imagestring imagettftext benutzen magst - dann kannst du imagettfbbox benutzen, um die Maße des Textes (vorab) zu ermitteln.

      Hab mir grad imagettfbbox im Handbuch durchgelesen nur komm ich da irgenwie nicht mit. Kannst du mir vielleicht sagen wie ich da die Länge bekomme damit ich dann mit imagettftext weitermachen kann?

      MfG
      Simon

      1. Hi,

        Hab mir grad imagettfbbox im Handbuch durchgelesen nur komm ich da irgenwie nicht mit. Kannst du mir vielleicht sagen wie ich da die Länge bekomme

        Du bekommst von imagettfbox, so viel hast du aber doch wohl verstanden, die Koordinaten aller vier Ecken der imaginären Box, die den Text umschliesst.

        Und aus den Koordinaten der zwei oberen Ecken die Breite zu berechnen, ist doch wohl auch nicht so schwer?

        damit ich dann mit imagettftext weitermachen kann?

        Nachdem du die Breite hast, willst du erst mal mit dem Erstellen des Bildobjektes in der passenden Breite weitermachen.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Du bekommst von imagettfbox, so viel hast du aber doch wohl verstanden, die Koordinaten aller vier Ecken der imaginären Box, die den Text umschliesst.

          Und aus den Koordinaten der zwei oberen Ecken die Breite zu berechnen, ist doch wohl auch nicht so schwer?

          Nein dass denk ich nicht.

          damit ich dann mit imagettftext weitermachen kann?

          Nachdem du die Breite hast, willst du erst mal mit dem Erstellen des Bildobjektes in der passenden Breite weitermachen.

          Ok, schau mir das mal an und stell dann mein Ergebnis rein.

          MfG
          Simon

  2. Hallo,

    Da der Text nicht immer gleich lang ist, müsste sich die Breite automatisch anpassen.

    Erstmal müsstest du wohl wissen, welche Pixelbreite der Text dann einnimmt bzw. wie du das bestimmst, oder?

    Gruß

    jobo