Ankündigung

Einklappen
Keine Ankündigung bisher.

Text in Bildern erzeugen?

Einklappen

Neue Werbung 2019

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

  • Text in Bildern erzeugen?

    Hi

    ich versuche mich gerade darin in einem bestehendem png Bild einen Text hineinzuschreiben. Mir wird aber nur das Bild ausgegeben und der Text fehlt.... was mache ich falsch? Die ttf Datei liegt auf dem Server, Groß/Kleinschreibung hab ich schon beachtet

    PHP-Code:
    header('Content-type: image/png');
      
    $text 'Test';
      
    $font 'Arial.ttf';
      
    $size 12;
      
    $angle 0;
      
    $field imagettfbbox($size$angle$font$text);
      
      
    $pos_x 0;
      
    $pos_y 0;
      
    $file 'button1off.png';
      
    $txt_color ImageColorAllocate ($im000);
      
    $size getimagesize($file);
      
    $image imagecreatefrompng($file);
      
    imagettftext($image$size$angle$pos_x$pos_y$txt_color$font$text);
      
    #imagecolortransparent($image, $bg_color);
      
    imagepng($image);
      
    imagedestroy($image); 


  • #2
    Hi.

    Schau Dir hier mal das Beispiel an:

    http://www.selfphp.de/code_snippets/...ppet.php?id=16

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Gibts Fehlermeldungen?
      PHP-Code:
        $txt_color ImageColorAllocate ($im000); 
      Wo kommt $im her? Sieht mir uninitialisiert aus...

      ImageColorAllocate() kann fehlschlagen z.B. bei Palettenverwendung, wenn die Palette voll ist.

      Das vorgehen ist hier:
      Code:
      - Stelle fest, ob die Farbe in der Palette enthalten ist (ImageColorExact())
      - Wenn NEIN
        - Stelle fest, ob die Palette voll ist (ImageColorTotal() 
        - Wenn NEIN
          - ImageColorAllocate()
        - ANDERENFALLS ImageColorClosest()
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Danke für die Tips, ich habs jetzt soweit hinbekommen, daß ich den Text in das Bild bekomme. Jetzt wollte ich aber das Bild nach rechts verlängern falls der Text breiter ist als der button. Da der Button ganz links ein kleines Symbol hat kann ich nicht einfahc nur die Breite erweitern, weil das Bild dann verzerrt wirkt. Daher wollte ich rechts einfach einen rechtwinkligen Ausschnitt aus dem bild kopieren und im Bild rechts als Verlängerung wieder einfügen. das klappt aber irgendwie nicht... könnt ihr da bitte nochmal draufschauen?
        PHP-Code:
          $size 10;
          
        $angle 0;
          
        $field imagettfbbox($size$angle$font$text);
          
        $laenge strlen($text);
          
          list(
        $width$height) = getimagesize($file);
            
        $new_width $width +50// neues bild soll 50 breiter sein
            
        $new_height $height// höhe bleibt gleich

         
          
        $image imagecreatefrompng($file);
          
        $pos_x 28;
          
        $pos_y 16;
          
             
        $size = array($new_width,$height); // Breite und Höhe des Auschnitts
            
        $point = array(50,50); // Koordinaten, ab wo kopiert werden soll (erst X, dann Y).
            
        $image1 imagecreatetruecolor ($size[0],$size[1]); // Neues Bild leer erstellen
            
        imagecopyresized($image1$image0,0$point[0],$point[1],$size[0],$size[1], $size[0],$size[1]); // Ausschnitt rüberkopieren 


        //$image1=$image;
          
        $txt_color ImageColorAllocate ($image1255239213);
          
        imagettftext($image1$size$angle$pos_x$pos_y$txt_color$font$text);
          
          
        $pos_x 27;
          
        $pos_y 15;
            
        $txt_color ImageColorAllocate ($image1000);
          
        imagettftext($image1$size$angle$pos_x$pos_y$txt_color$font$text);

          
        #imagecolortransparent($image, $bg_color);
          
        $NewFile "./tmp/".$text.$on.".png";
          
        imagepng($image1,$NewFile);
          
        imagedestroy($image1); 

        Kommentar


        • #5
          Zitat von grka Beitrag anzeigen
          das klappt aber irgendwie nicht...
          WAS klappt nicht?
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar

          Lädt...
          X