Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 7 von 7
  1. #1
    Aufsteiger
    Registriert seit
    31.10.2007
    Beiträge
    97

    Standard 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. #2
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    15.267

    Standard

    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
    Geändert von Christian Marquardt (31.03.2012 um 11:09 Uhr)
    Christian

  3. #3
    Aufsteiger
    Registriert seit
    31.10.2007
    Beiträge
    97

    Standard

    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.

  4. #4
    Aufsteiger
    Registriert seit
    31.10.2007
    Beiträge
    97

    Standard

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

  5. #5
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    15.267

    Standard

    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

  6. #6
    Aufsteiger
    Registriert seit
    31.10.2007
    Beiträge
    97

    Standard

    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.

  7. #7
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    15.267

    Standard

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

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •