mehrfarbieger Text als Grafikausgaben, Daten aus Liste

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

  • #16
    Zitat von PHP-Desaster Beitrag anzeigen
    Na, also haperts direkt bei den grundlegendsten Dingen bereits. Hast du denn überhaupt schon irgendwas auf dein Bild gemalt? Vorher brauchst du eh gar nicht weitermachen.
    Und ja, imagestring würde immer an die gleiche Stelle schreiben, wenn du der Funktion die gleichen Koordinaten mitgibst. Damit du bei folgenden Aufrufen den nicht geschriebenen Text wieder übermalst verwendest du imagefontwidth um die neue Position zu errechnen. Und nein, dein Beispiel reicht natürlich nicht aus.
    Einen einfachen Text (kein mehrfach wie ich es will) kann ich ohne probleme ausgeben als eine Grafik. Da hab ich ein beispiel script für gefunden.

    Warum reicht in mein Beispiel der teil
    PHP-Code:
    strlen($leer$ausgabe1$anfang$ausgabe2); 
    nicht aus um die gesamtbreite zu bekommen? =unlogisch.
    Es müßten doch nun eigentlich dort sämtliche Textzeichen aus den 4 angaben eingefügt werden und dann gemeinsam berücksichtigt werden zur ermittlung des wertes? oder soll ich den wert der dahin kommt extra defenieren?

    Was für mich volkommen unsinning ist, ist schon gleich der start:
    PHP-Code:
    imagefontwidth($textnr
    Warum muss da die texthöhe hin für eine breitenangabe?
    Das ist einfach unlogisch, aber viellleicht brauch der befehl das ja um den Text zu simulieren...
    Habe das mit dem textnr so aus dem org script übernommen.

    Gesammtzeile:
    PHP-Code:
    $textbreite4 imagefontwidth($textnr) * strlen($leer$ausgabe1$anfang$ausgabe2
    und die textnr enthält die defenierte schrifthöhe.

    Gruss Stefan

    Kommentar


    • #17
      Zitat von thx-sound Beitrag anzeigen
      Warum reicht in mein Beispiel der teil
      PHP-Code:
      strlen($leer$ausgabe1$anfang$ausgabe2); 
      nicht aus um die gesamtbreite zu bekommen? =unlogisch.
      Weil das schon von der Syntax her Quark ist, der dir einen Fehler werfen muss.

      Es müßten doch nun eigentlich dort sämtliche Textzeichen aus den 4 angaben eingefügt werden
      Sie müssten erst mal zu einem Textstring zusammengefügt werden, damit das an der Stelle Sinn ergeben kann - weil strlen einen Parameter erwartet. (Natürlich muss dafür keine neue Variable herhalten, das kann auch an dieser Stelle mittels Stringverkettung geschehen.)

      Was für mich volkommen unsinning ist, ist schon gleich der start:
      PHP-Code:
      imagefontwidth($textnr
      Warum muss da die texthöhe hin für eine breitenangabe?
      Wo ist da irgendwo von "Höhe" die Rede ...?

      und die textnr enthält die defenierte schrifthöhe.
      Nein, tut es nicht. Lies im Manual nach, welche Bedeutung der Parameter hat.

      Das ist einfach unlogisch
      Am unlogischsten ist, was du aus dem ganzen machst ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #18
        Ich skizziere das gewünschte Vorgehen mal:

        Erste Zeichenkette zeichnen
        X-Koordinate um geschriebene Breite erhöhen
        Zweite Zeichenkette zeichnen
        X-Koordinate um geschriebene Breite erhöhen
        Dritte Zeichenkette zeichnen
        X-Koordinate um geschriebene Breite erhöhen
        Vierte Zeichenkette zeichnen

        Jetzt klar?

        Kommentar


        • #19
          @php-desaster:


          Verstehe nicht wirklich was du damit meinst und wie es gehen soll.

          habe aber selbst nun mal mit meiner vorhin erwähnten Methode das abgeändert (und noch ein collector eingebaut)

          Leider kriege ich nun ein

          Parse error: syntax error, unexpected T_STRING in /home/www/web191/html/bewertungfarbtest3.php on line 48

          Wenn ich den Auswurf als png wegnehme kriege ich diesen:

          Parse error: syntax error, unexpected $end in /home/www/web191/html/bewertungfarbtest3.php on line 61



          PHP-Code:
          <?php
          $bildbreite 
          468;
          $textnr 4;
          $trenner " / ";
          $anfang " ( ";
          $ende " ) ";
          $leer " ";
          $ausgabe1 "thx-sound";
          $ausgabe2 "42";
          $ausgabe3 "0";
          $ausgabe4 "0";

          $collector2 "$leer";
          $collector3 "$leer$ausgabe1";
          $collector4 "$leer$ausgabe1$anfang";
          $collector5 "$leer$ausgabe1$anfang$ausgabe2";
          $collector6 "$leer$ausgabe1$anfang$ausgabe2$trenner";
          $collector7 "$leer$ausgabe1$anfang$ausgabe2$trenner$ausgabe3";
          $collector8 "$leer$ausgabe1$anfang$ausgabe2$trenner$ausgabe3$trenner";
          $collector9 "$leer$ausgabe1$anfang$ausgabe2$trenner$ausgabe3$trenner$ausgabe4);

          $textp2 = imagefontwidth($textnr) * strlen($collector2);
          $textp3 = imagefontwidth($textnr) * strlen($collector3);
          $textp4 = imagefontwidth($textnr) * strlen($collector4);
          $textp5 = imagefontwidth($textnr) * strlen($collector5);
          $textp6 = imagefontwidth($textnr) * strlen($collector6);
          $textp7 = imagefontwidth($textnr) * strlen($collector7);
          $textp8 = imagefontwidth($textnr) * strlen($collector8);
          $textp9 = imagefontwidth($textnr) * strlen($collector9);

          $texthoehe  = imagefontheight($textnr);


          $bildgroesse = imagecreate (468 , $texthoehe);


          $hintergrund_farbe  = imagecolorallocate ($bildgroesse, 222, 222, 222);
          $text_farbe1        = imagecolorallocate ($bildgroesse, 0, 0, 0);
          $text_farbe2        = imagecolorallocate ($bildgroesse, 0, 0, 0);
          $text_farbe3        = imagecolorallocate ($bildgroesse, 0, 0, 0);
          $text_farbe4        = imagecolorallocate ($bildgroesse, 46, 139, 87);
          $text_farbe5        = imagecolorallocate ($bildgroesse, 0, 0, 0);
          $text_farbe6        = imagecolorallocate ($bildgroesse, 0, 0, 255);
          $text_farbe7        = imagecolorallocate ($bildgroesse, 0, 0, 0);
          $text_farbe8        = imagecolorallocate ($bildgroesse, 255, 0, 0);
          $text_farbe9        = imagecolorallocate ($bildgroesse, 0, 0, 0);

          header ("
          Content-typeimage/png");
          imagefilledrectangle (
          $bildgroesse, 0, 0, $bildbreite$texthoehe$hintergrund_farbe);
          imagestring (
          $bildgroesse$textnr$textp2, 0, $ausgabe1$text_farbe2);
          imagestring (
          $bildgroesse$textnr$textp3, 0, $anfang$text_farbe3);
          imagestring (
          $bildgroesse$textnr$textp4, 0, $ausgabe2$text_farbe4);
          imagestring (
          $bildgroesse$textnr$textp5, 0, $trenner$text_farbe5);
          imagestring (
          $bildgroesse$textnr$textp6, 0, $ausgabe3$text_farbe6);
          imagestring (
          $bildgroesse$textnr$textp7, 0, $trenner$text_farbe7);
          imagestring (
          $bildgroesse$textnr$textp8, 0, $ausgabe4$text_farbe8);
          imagestring (
          $bildgroesse$textnr$textp9, 0, $ende$text_farbe9);

          imagepng (
          $bildgroesse);
          ?>
          Ich weiß auch nicht ob es von bedeutung ist, eine andere (entsprechend des inhalts) defenierte breite für die imagestring anzugeben?


          Was jetzt noch

          PHP-Code:
          $ausgabe1 "thx-sound";
          $ausgabe2 "42";
          $ausgabe3 "0";
          $ausgabe4 "0"
          ist, da soll später einmal diese Werte aus einer Datenbank Datei (oder MySql tabelle) abrufen für jedeneinzelnen der über 1000 User.


          Aber das gehe ich dann an, wenn es erstmal so mit der Bildausgabe 100% geht.


          Gruss Stefan
          Zuletzt geändert von thx-sound; 24.05.2009, 18:28.

          Kommentar


          • #20
            Zitat von thx-sound Beitrag anzeigen
            Leider kriege ich nun ein

            Parse error: syntax error, unexpected T_STRING in /home/www/web191/html/bewertungfarbtest3.php on line 48
            Dann schau dir an, wie den geposteter Beispielcode hier im Forum farblich dargestellt wird.

            Allein stehende Variablennamen werden blau dargestellt. Na, ab wo ändert sich das?


            Bevor man sich an solche Scripte wagt, sollte man wenigstens so weit mit der Syntax umgehen gelernt haben, dass man die Ursache simpler parse errors selber zu finden in der Lage ist.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Super, nun geht es zumindest schon mal

              Das mit der Farbe hier im Forum hatte mich schon gewundert.

              Danke jedenfalls für die hilfe für stufe 1

              Nun muss ich erstmal von einen Admin des Portalls die 2 gewünschten werte (userid und username) in einer liste bekommen .

              Und Stufe 2 beinhaltet eigentlich nur eine umprogrogrammierung bzw erweiterung eines tools und dann das erstellen der Datenbank. Und der Programmierer wollte erst loslegen wenn stufe 1 geht und ich dann noch die daten bekomme.

              In Stufe 3 gehts dann wieder an das php script was sich die Daten holen soll.


              Wie schon geschrieben, war ich eigentlich auf der Suche nach einem fertigen script.

              Ich aheb nun nebenbei aber ein einfach erklärtes "Programmieren mit PHP" angeguckt was mit google geliefert hat.
              Das beschrängte sich aufs wesentliche stück für stück.
              Daher habe ich dann erfahren wie ich überhaupt ein farbiegen hintergrund bzw rechteck mit rein bekomme.


              Das script wird dann u.a. auf bluray-disc.de eingesetzt wo ich als Bewertungsverarbeiter tätig bin.
              Leider haben dort alle was zu tun. Und es könte auch schon in einigen Monaten abgelöst werden...



              Gruss Stefan
              Zuletzt geändert von thx-sound; 24.05.2009, 19:50.

              Kommentar


              • #22
                Das mit der Breite wird so nicht sehr gut funktionieren. Die Buchstaben "i" und "m" z.B. haben bei den meisten Schriftarten unterschiedliche Breiten. Damit es genau wird brauchst mit der GD-Lib am besten imagettfbbox() oder eine verwandte Funktion.

                Kommentar


                • #23
                  Die Buchstaben "i" und "m" z.B. haben bei den meisten Schriftarten unterschiedliche Breiten.
                  Grundsätzlich ja, ich zitiere mich aber einfach mal selbst:

                  Zitat von PHP-Desaster Beitrag anzeigen
                  Wenn du mit imagestring arbeitest, ist jedes Zeichen gleich breit.

                  Kommentar

                  Lädt...
                  X