dynamische grafiken mit text - Gestaltungsproblem

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

  • dynamische grafiken mit text - Gestaltungsproblem

    Hi Leute,

    ich hoffe mal wieder, dass mir jemand von euch den richtigen tip, Hinweis oder codeschnipsel beim meinem problem posten kann..
    ich weiß ja nicht mal, wie ich da richtig anfangen soll

    und zwar hab ich grafiken, die ich als schaltfläche nutze, demnach nutze ich auch imagettftext um texte dynamisch auf die grafik zu generieren....soweit alles kein problem...

    aber leider haben ja nicht alle wörter, die ich in diese grafik einfüge, die gleiche länge, und dann sieht so ein Button verdammt unschön aus...

    meine frage wäre daher, wie kann ich es erreichen, dass die Buttongrafik sich der textlänge anpassen ?

    vielen dank fürs "zuhören"

  • #2
    mit imageTTFbox() kannst du die länge des textes messen.
    Kissolino.com

    Kommentar


    • #3
      okay,...das ist doch schon mal nen guter ansatz
      werd gleich mal die suche nutzen...

      aber ich habe da noch ein problem entdeckt in meinen überlegungen

      die Grund-grafik für den Button ist ein rechteck besteht also aus einem anfang, dem hauptteil der durch die textlänge bestimmt wird und der abschluss [ ------ ]

      wie muss ich da vorgehen ? das bild müßte sich dann ja aus 3 teilen zusammenfügen oder ?

      Kommentar


      • #4
        Original geschrieben von bärlina
        wie muss ich da vorgehen ? das bild müßte sich dann ja aus 3 teilen zusammenfügen oder ?
        ja sicher. aber das bisschen addieren sollte doch kein problem sein
        Kissolino.com

        Kommentar


        • #5
          he,he manno das liest sich so leicht....
          aber umsetzen....*puhh

          soll ich den anfang und ende der grafik einfach statisch einfügen
          und nur das mittelteil mit text erzeugen lassen ?

          wäre doch sicher einfach oder ?

          also muss ich nur noch rausfinden, wie das mit dem imageTTFbox funktioniert ja ?

          Kommentar


          • #6
            ist doch nicht schwierig:
            - miss die text-länge
            - addiere die breite der anfangs-/end-bilder dazu
            - erzeuge ein neues bild mit der errechneten abmessung
            - skaliere den hintergrund da rein imagecopy()
            - setz die anfangs-/end-bilder an die entsprechende position imagecopy()
            - schreib den text obendrauf
            fertig.
            Kissolino.com

            Kommentar


            • #7
              @ Wurzel :

              nicht schwer ?

              dann würde ich euch doch hier nicht "terrorisieren"

              ich scheitere ja schon am leichten versuch

              wollte anfangs und endgrafik statisch machen
              und nur das mittelteil erzeugen lassen..

              ich bekomme aber nicht mal die ausgabe hin, kann mir jemand sagen, was ich da falsch mache ?

              das script lass ich natürlich über ein img tag aufrufen ...

              PHP-Code:

                $text 
              "Buttontext";
                
              $font "ttf/verdana.ttf";

                
              $file "img/button_middle.jpg";
                
              $size  "15";
                
              $angle "0";
                
              $x     "5";
                
              $y     "10";
                
              $image imagecreatefromjpeg ($file);  
                
              $color imagecolorallocate ($image100100100);

              function 
              imagettftextalign($image$size$angle$x$y$color$font$text$alignment='L'
              {
              //check width of the text
                 
              $bbox imagettfbbox ($size$angle$font$text);
                 
              $textWidth $bbox[2] - $bbox[0];
                   switch (
              $alignment
                   {
                     case 
              "R":
                         
              $x -= $textWidth;
                         break;
                     case 
              "C":
                         
              $x -= $textWidth 2;
                         break;
                   }     
              imagettftext ($image$size$angle$x$y$color$font$text); 
              }

                  
              imagejpeg ($image,"",100); 
              Zuletzt geändert von bärlina; 27.10.2005, 17:13.

              Kommentar


              • #8
                - ruf die bilderzeugende datei mal direkt im browser auf ... fehlermeldung?
                - wo rufst du die funktion imagettftextalign() auf?
                - ein korrekter header() fehlt auch noch (zur fehlersuche erstmal weglassen)
                Kissolino.com

                Kommentar


                • #9
                  Original geschrieben von Wurzel
                  - ruf die bilderzeugende datei mal direkt im browser auf ... fehlermeldung?
                  - wo rufst du die funktion imagettftextalign() auf?
                  - ein korrekter header() fehlt auch noch (zur fehlersuche erstmal weglassen)
                  okay......

                  korrekten header hab ich natürlich.

                  imagettftextalign ruf ich nirgens auf... das seh ich erst jetzt,
                  wie muss ich das anwenden ? in verbindung mit imagejpeg() ?

                  Kommentar


                  • #10
                    Original geschrieben von bärlina
                    imagettftextalign ruf ich nirgens auf... das seh ich erst jetzt,
                    wie muss ich das anwenden ? in verbindung mit imagejpeg() ?
                    schau nochmal auf der seite nach, wo du es rauskopiert hast.

                    btw: fehlermeldung?
                    Kissolino.com

                    Kommentar


                    • #11
                      hab grad geschaut, das finde ich leide rnicht mehr, hab so viel suchwörter verwendet und der richtige thread ist nicht auffindbar

                      bisher schaffe ich es nur, die grundgrafik auszugeben...aber weder mit text noch in der richtigen länge

                      und zu fehlermeldung ohne den header

                      Warning: Missing argument 1-8 for imagettftextalign() in c:\apache\htdocs\test.php on line 20

                      Warning: Could not find/open font in c:\apache\htdocs\test.php on line 23

                      Warning: Supplied argument is not a valid Image resource in c:\apache\htdocs\test.php on line 34

                      hierzu muss ich noch sagen, dass die schrift aber im verzeichnis vorhanden ist, denn ein normaler dyn. text wird mit der pfadangabe korrekt ausgeführt

                      Kommentar


                      • #12
                        kann mir niemand sagen, wie ich diese funktion richtig aufrufe ?

                        büdde

                        Kommentar


                        • #13
                          *himmel hilf*

                          - Warning: Missing argument 1-8 for imagettftextalign() in c:\apache\htdocs\test.php on line 20
                          - was sagt dir das ^^?
                          - was macht die (selbstdef.)funktion und die darin enthaltenen (php)funktionen?
                          - wozu brauchst du diese "hilfskrücke"?

                          schlage zur beantwortung der fragen erstmal alle (php)funktionen im manual nach: http://de3.php.net/manual/de/ref.image.php

                          wie man mit selbstdefinierten funktionen umgeht, findest du z.B. hier: http://www.php-faq.de/q/q-funktion-variabel.html
                          Kissolino.com

                          Kommentar


                          • #14
                            ich schlag mich ja schon seit stunden damit rum...

                            wennich es schaffe, bild und text zu erzeugen, dann wird das bild nicht lang genug

                            scheint wohl doch schwere zu sein, einen text in eine mitwachsene grafik zu generieren

                            Kommentar


                            • #15
                              Original geschrieben von bärlina
                              scheint wohl doch schwere zu sein, einen text in eine mitwachsene grafik zu generieren
                              Nö. Man muß nur die Fehlermeldungen lesen und danach handeln.
                              Wo genau liegt denn das Problem?

                              Warning: Missing argument 1-8 for imagettftextalign() in c:\apache\htdocs\test.php on line 20

                              = Parameter 1-8 fehlen

                              Warning: Could not find/open font in c:\apache\htdocs\test.php on line 23

                              = Fontdatei fehlt

                              Kommentar

                              Lädt...
                              X