Announcement

Collapse
No announcement yet.

Problem mit ImageTTFText

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit ImageTTFText

    Hallo an Alle,

    ich habe folgendes Problem, in einer for-Schleife sollen Texte in Grafiken convertiert werden. Hier das vereinfachte Scipt:

    <?PHP
    for($i=0; $i < 20; $i++)
    {
    $im = imagecreate (35, 20);
    $black = ImageColorAllocate ($im, 255, 255, 255);
    $orange = ImageColorAllocate ($im, 252, 85, 3);
    ImageTTFText($im, 12, 0, 10, 20, $orange, "verdana.ttf", $i);
    Imagepng ($im,"pic.png");
    $pic = "<img src=\"pic.png\" />";
    echo $pic."<br>";
    ImageDestroy ($im);
    }
    ?>

    Mein Problem ist, das $pic immer als 19 angezeigt wird, ich möchte aber erreichen, das die Zahlen von 0 - 19 angezeigt werden. Was mache ich falsch?
    Danke für die Hilfe.

    Gruß René

  • #2
    Da $pic ein Stück HTML-Code ist, weiss ich nicht, wo da "nur" 19 erscheinen kann oder sollte. Aber jedenfalls musst du an der gewünschten Stelle $i einsetzen, um die Laufvariable zu nutzen. Sofer sich die Frage auf das erzeugte Image und dessen INHALT bezieht, ist doch klar, dass da immer nur der letzte nummerische Wert der Schleife drin steht. Schließlich durchläuftst du die Schleife 20x, erzeugst 20x eine Grafik, aber immer in der selben Variable. Der Letzte gewinnt halt...

    Vereinfacht:
    for($i=0; $i < 20; $i++)
    {
    $a=$i;
    }


    Da mit $a nichts weiter passiert, ist $a am Ende immer 19
    Zuletzt editiert von Christian Marquardt; 31.03.2012, 11:09.
    Christian

    Comment


    • #3
      Danke für die Schnelle Antwort. Die Variable $i weise ich hier zu:

      ImageTTFText($im, 12, 0, 10, 20, $orange, "verdana.ttf", $i);

      Daraus wird soll ja dann ein Bild werden das mit:

      <img src=\"pic.png\" />;

      ausgegeben wird. Das Problem ist, das immer der größte Wert für $i, nämlich 19, als Bild ausgegeben wird und ich weiß nicht warum.

      Comment


      • #4
        ok danke für den Hinweis, aber wie löse ich mein Problem?

        Comment


        • #5
          In

          Imagepng ($im,"pic.png");

          Wird immer "pic.png" mit dem aktuellen Wert erzeugt. Der ist zum Schluß halt 19

          Du erhälst 20x ein PNG mit dem Namen pic.png. Bei jedem Durchlauf wird das Bild mit der neuen Grafik überschrieben.

          Ev. willst du

          Imagepng ($im,$i."pic.png");

          Das sollte 20 Grafiken mit dem Namen der Laufvariablen erzeugen
          Christian

          Comment


          • #6
            Super, Danke es hat funktioniert. Was ich nicht wusste ist, dass die Bilder auf dem Server gespeichert werden. Leider ist das damit aber nicht meine Lösung die ich wirklich brauche.

            Mir geht es darum, auf einer Shopseite die 30 Artikel dynamisch anzeigt z.B. die Texte "Lieferzeit 3-4" Tage oder "Preis per Stück" nicht als Text darzustellen. Der Grund ist einfach, dass Google diese Texte nicht findet wenn die Seiten indexiert werden. Ansonsten habe ich mit eigentlich nicht relevanten Informationen eine hohe Keyword-Dichte die ich aber für Google nicht möchte.

            Comment


            • #7
              Warum sollten immer wieder benötigte Grafiken "on the fly" erzeugt werden?
              Erstelle diese und lade die Grafiken einfach als img
              Christian

              Comment

              Working...
              X