Zahl aus ner Variable mit GD-Library als Bild schreiben.

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

  • Zahl aus ner Variable mit GD-Library als Bild schreiben.

    Wie gesagt, will ich mein Script per IMG-Tag ausgeben. Wegen HTML-Unterstützung und so.

    (Siehe auch http://www.php-resource.de/forum/sho...?threadid=3889)

    jetzt ist die Frage, wie ich meine Zahl, die ich von mir aus in der Variable $zahl gespeichert habe in ein Bild wandeln kann.

    Habe also folgendes:
    Code:
    $zahl = "176"; //Nur als Beispiel
    Und zum Ausgeben dieses. Verstehe es zwar noch nicht ganz, aber okay.
    Code:
    Header("Content-type: image/gif"); 
    include("bild.gif");
    Jetzt muss ich wie gesagt noch wissen, wie ich die 176 ($zahl) in das bild.gif bekomme. Das kann ja dann auch ne Variable sein.

    [Editiert von TobiaZ am 03-01-2002 um 15:31]

  • #2


    folgendes Skript als image.php ablegen und entweder direkt über Browser aufrufen oder über eine HTML-Seite über Statement:

    <img src="image.php?text=179">

    Code:
    <?
    // image.php
    // $colour = Schriftfarbe
    // $text = Der Text oder Inhalt der ausgegebven werden soll
    // Dieses Skript aufrufen beispielsweise mit image.php?text=Foo&colour=red
    
    header("Content-type: image/png"); // Bild im PNG-Format
    
    $im = imagecreate(50, 20); // Größe des Bildes
    
    $white = ImageColorAllocate($im, 255,255,100); // Hintergrundfarbe hier irgendein Gelb
    
    switch ($colour) {
    	case "white":
    		$colour = ImageColorAllocate($im, 255,255,255);
    		break;
    	case "gray":
    		$colour = ImageColorAllocate($im, 128,128,128);
    		break;
    	case "black":
    		$colour = ImageColorAllocate($im, 0,0,0);
    		break;
    	case "red":
    		$colour = ImageColorAllocate($im, 255,0,0);
    		break;
    	case "lightred":
    		$colour = ImageColorAllocate($im, 255,64,64);
    		break;
    	default:
    		$colour = ImageColorAllocate($im, 0,0,0);
    		break;
    }
    
    if ($size == "") {
    	$size = 10;
    }
    // Wenn TrueTypeFonts unterstützt werden und sich das TTF-File im Verzeichnis befindet
    // ImageTTFText($im, $size, 0, 1, 8, $colour, "verdana.ttf", "$text");
    // ansonsten
    ImageString($im, 2, 3, 2, $text, $colour);
    
    ImagePng($im);
    ImageDestroy($im);
    ?>

    Kommentar


    • #3
      $img = ImageCreate(30,40);

      $bg = ImageColorAllocate($img,0,0,0); //schwarz
      $fg = ImageColorAllocate($img,255,255,255); //weiss

      ImageFilledRectangle($img,0,0,30,40,$bg);
      ImageTTFText ($img, 20, 0, 5, 10, $fg, '/pfad/schrift.ttf',(string)$zahl);

      header('Content-Type: image/png');

      ImagePNG($img);

      CAT Music Files

      Kommentar


      • #4
        Hab ichs verstanden?

        @ Sky: Deins sieht einfacher aus. Beschäfftige mich jetzt erstmal mit dem. Nur um zu testen, ob ich es verstanden hab:

        Das Bild was generiert wird ist 30breit und 40hoch

        Hintergrund in Black
        Vordergrund (also Schrift) in White

        Das bild wird voll ausgefüllt (also von 0/0 bis 30/40) mit schwarz
        Und dann schreibt der mit schrift.ttf in weiß meine Zahl. aber was sagen die Zahlenwerte genau, welches ist wo? Wo ist width und height?

        Kommentar


        • #5
          http://www.php.net/manual/de/function.imagettftext.php
          http://www.php.net/manual/de/functio...drectangle.php


          Vergiß am Ende des Skripts bitte nicht
          ImageDestroy($img);

          http://www.php.net/manual/de/function.imagedestroy.php

          Ohne Funktionalität und ohne TTF
          Code:
          <? 
          header("Content-type: image/png"); 
          $image = imagecreate(50, 20);
          $bgcol = ImageColorAllocate($image,255,255,100); 
          $fgcol = ImageColorAllocate($image,0,0,0); 
          ImageString($image, 2, 3, 2, $text, $fgcol); 
          ImagePng($image); 
          ImageDestroy($image); 
          ?>
          [Editiert von hand am 03-01-2002 um 17:27]

          Kommentar


          • #6
            Bekomme gerade keine connection zu php.net.

            dein neuer Text sieht doch schon mal ganz sauber aus. Aber dein ImageString($image, 2, 3, 2, $text, $fgcol); macht mir Probleme. Wofür sind die 2, 3, 2? Warum hast du nur 3 Werte und Sky 4?

            Kommentar


            • #7
              Weil ich ImageTTFText verwende...

              CAT Music Files

              Kommentar


              • #8
                Hab aber immer noch keinen Plan, wofür die Zahlen.

                Bei euch sieht das so aus, als ob die willkürlich sind. ich nehm mal ne 2, und du hast da ne 3 genommen, dann nehm ich halt da ne 7. so sieht das für mich aus.

                Kommentar


                • #9
                  LOL

                  Schau dir die Syntax an, dann weißt du, wofür die Zahlen stehen.

                  CAT Music Files

                  Kommentar


                  • #10
                    Unter
                    http://www.php.net/manual/de/function.imagestring.php
                    steht für imagestring():

                    int imagestring (int im, int font, int x, int y, string s, int col)
                    ImageString() gibt den String s in dem durch den Parameter im bezeichneten Bild an den Koordinaten x und y aus. Die Koordinaten 0, 0 geben die linke obere Ecke des Bildes im an. Der Font erscheint in der Farbe col. Hat font den Wert 1, 2, 3, 4 oder 5 wird ein interner Font benutzt.


                    Unter
                    http://www.php.net/manual/de/function.imagettftext.php
                    steht für imageTTFtext():

                    array imagettftext (int im, int size, int angle, int x, int y, int col, string fontfile, string text)

                    ImageTTFText() zeichnet den Text text in das per im angegebene Bild, beginnend bei den Koordinaten x und y (oben links ist 0, 0) mit einem Ausgabewinkel von angle in der Farbe col unter Verwendung der TTF-Datei, die mittels fontfile benannt wurde.

                    Die per x und y angegebenen Koordinaten definieren den Startpunkt des ersten Zeichens (in etwa die linke untere Ecke). Das ist anders als bei der ImageString()-Funktion, bei der x und y die obere rechte Ecke des ersten Zeichens darstellen.

                    Angle ist in Grad anzugeben. 0 ist eine normale Ausrichtung von links nach rechts (von 9 nach 3 Uhr). Höhere Werte entsprechen einer immer weiteren Drehung entgegen dem Uhrzeiger-Sinn. Eine Drehung von 90 Grad entspricht also einer Text-Ausrichtung von unten nach oben (von 6 nach 12 Uhr).

                    Fontfile ist der Pfad zur TTF-Datei, die Sie verwenden wollen.

                    Text ist der auszugebende String, der auch UTF-8-Zeichenfolgen enthalten darf (z.B. &#123

                    Col ist der Farbindex. Verwenden Sie den negativen Index-Wert, führt das zum Aufheben des Farbüberlaufs (Antialiasing).

                    ImageTTFText() gibt ein Array aus acht Elementen zurück, das die vier Ecken des Textausgabe-Bereichs enthält (wie ImageTTFBBox()). Die Reihenfolge ist dabei oben links, oben rechts, unten rechts und unten links. Die Punkte sind dabei relativ zum Text. Deshalb gibt oben links die linke Ecke bei horizontaler Sichtweise an.

                    Kommentar


                    • #11
                      Was kann ich denn machen, wenn der ImageCreate nicht kennt. Der sagt mir nämlich, das sei eine undefinierte Funktion.

                      Hab ich dann nicht die nötige unterstützung?

                      Kommentar


                      • #12
                        Dann is die Grafik unterstützung net drin mussu in der php.ini einstellen
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          mist. denke da hab ich keinen Zugriff drauf. Ist ja leider nicht mein Server.

                          Wo find ich die Datei denn?

                          Ich werde mich mal an den Hoster wenden.

                          Ganze Mühe umsonst.

                          Kommentar


                          • #14
                            Versuche einmal über phpinfo(); herauszufinden, ob GD unterstützt wird und wenn mit welchen Features.

                            <?
                            phpinfo();
                            ?>

                            Suche in der generierten Seite nach "gd"

                            So könnte es in diesem Abschnitt aussehen, oder auch nicht:
                            gd
                            GD Support enabled
                            GD Version 2.0 or higher
                            FreeType Support enabled
                            FreeType Linkage with freetype
                            JPG Support enabled
                            PNG Support enabled
                            WBMP Support enabled

                            Was steht bei Dir dort?

                            Kommentar


                            • #15
                              Ist nicht nötig. Hab irgend wann heute morgen eine Mail bekommen. Die Unterstützung ist noch nicht drin.

                              Ich bekomme aber die aber in den nächsten 2 Wochen.

                              Geht doch nichst über nen guten Draht zum Hoster. *lol*

                              Kommentar

                              Lädt...
                              X