Ankündigung

Einklappen
Keine Ankündigung bisher.

ImageTTFText mehrzeilig zentrieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ImageTTFText mehrzeilig zentrieren

    Hallo,
    ich habe bei der Suche zwar jede menge �ber die Funktion Imagettftext
    und imagettfbbox gefunden allerdings nichts �ber mehrzeiligen Text.

    Einen Text zentriert auf ein Bild zu schreiben habe ich jetzt hinbekommen aber was ist wenn der mehrzeilig ist.

    Mein Ergebnis sieht immer so aus:

    Das ist ein Text
    Das ist auch ein Text

    Was ich brauche ist sowas:

    ___Das ist ein Text
    _Das ist auch ein Text

    Hier mal mein Code:
    PHP-Code:
    <?php
    header
    ("Content-type: image/gif");

    $x 200;
    $y 100;

    $text 'Das ist ein Text
    Das ist auch ein Text'
    ;
    $font '/ttf/arial.ttf';

    $img imagecreatetruecolor($x$y);
    $php_blau imagecolorallocate($img119123180);
    $schwartz imagecolorallocate($img000);
    imagefilledrectangle($img00$x$y$php_blau);

    // Den umschlie�enden Rahmen des Textes bestimmen
    $size imagettfbbox(120$font$text);

    //Breite des Textes berechnen
    $breite $size[4] - $size[6];

    //H�he des Textes bestimmen
    $hoehe $size[1] - $size[7];

    // x-Koordinate berechnen
    $x = ($x $breite) /2;

    // y-Koordinate bestimmen
    $y = ($y $hoehe) /2;

    // Text mit TrueType-Font in Grafik schreiben
    imagettftext($img120$x$y$schwartz$font$text);

    // Grafik anzeigen und Speicher freigeben
    imagepng($img);
    imagedestroy($img);

    // Breite des Textes berechnen
    $breite $size[4] - $size[6];

    // H�he des Textes berechnen
    $hoehe $size[1] - $size[7];

    // x-Koordinate berechnen
    $x = ($x $breite) /2;

    // y-Koordinate berechnen
    $y = ($y $hoehe) /2;
    ?>
    Bei Google habe ich auch zig Sachen gefunden aber nirgendwo wird
    auf mehrzeilige Texte eingegangen.
    Danke schonmal f�r Hilfe.

  • #2
    Schau dir mal das an:
    http://php3.de/imagettfbbox

    Du müsstest dein Text zeilweise einlesen, die Breite der Zeile ermitteln, naja und der Rest ist nur etwas Mathe.
    Dann dann Text bzw. die Zeile ausgeben.

    Kommentar


    • #3
      Hallo,
      danke CIX88 für deinen Tip.
      Ich habe mir die Seite mal angesehen.
      Ich weis jetzt nicht ob ich das alles richtig verstanden habe was da an beispielen steht. Aber ist es richtig das die function wordwrap() das macht was ich möchte? Oder liege ich da falsch?

      Kommentar


      • #4
        Mit wordwrap() wirst du nicht weit kommen, da imagettftext() keine Zeilenumbrüche verarbeitet.
        Es nutzt also nichts.

        Du musst schon deine Zeilen einzeln auslesen und auch einzeln mit imagettftext() schreiben.
        Prinzip:
        http://www.cix88.de/cix_php/php_graf...textzeilen.php

        Nur das bei dem Beispiel der Text nicht zentriert ist.

        Kommentar

        Lädt...
        X