Gdlib Farbproblem

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

  • Gdlib Farbproblem

    Hallo habe ein Gdlib Problem:
    Im Roten Teil muss ein Fehler sein, der eingefügte Text erscheint nur in einem hässlichen gelbton.
    Grüner Teil funktioniert, allerding ohne ttf die ich aber benötige.
    Pink ist nicht relevant.
    bei blau könnte ein Fehler vorliegen, habe aber keine Ahnung.

    Bitte um eure Hilfe.

    [COLOR=deeppink]
    <? //EINSTELLUNG ANFANG
    header('Content-type: image/jpeg');
    $breite = 800;
    $hoehe = 117;
    $domain = "www.goa-fashion.de";
    $firma = "GOA FASHION";
    $bilddatei ="banner2.jpg";
    $schriftgross = 10;
    $schriftgross1 = 80;
    [/COLOR]

    [COLOR=red]$fontfile = 'tahoma.ttf';$fontsize = 40; $fontangle = 0;[/COLOR]
    [COLOR=deeppink]$textlang = imagefontwidth($schriftgross)* strlen ($domain); [/COLOR]
    [COLOR=deeppink]$textlang1 = imagefontwidth($schriftgross)* strlen($firma);
    $schriftposx = ($breite-$textlang-10);
    $schriftposy = $hoehe - ($schriftgross+10);
    [/COLOR]

    [COLOR=blue]
    $image2 = imagecreatefromjpeg($bilddatei);
    $image3 = imagecreatetruecolor ($breite,$hoehe);
    $farbe = imagecolorallocate($image3,255,255,255);
    $farbe2 = imagecolorallocate($image3,0,0,0);
    imagerectangle ($image3,0,0,$breite,$hoehe,$farbe);
    $image2x = getimagesize($bilddatei);
    if ($image2x[0]>$image2x[1]){ $divs = $image2x[0]/$breite;
    $y=intval($image2x[1]/$divs);
    $x= $breite;
    $x2 = ($breite-$x)/2;
    $y2 = ($hoehe-$y)/2; }
    else{ $divs = $image2x[1]/$hoehe; $x=intval($image2x[0]/$divs);
    $y= $hoehe;
    $x2 = ($breite-$x)/2;
    $y2 = ($hoehe-$y)/2; }
    imagecopyresized ($image3,$image2,$x2,$y2,0,0,$x,$y,$image2x[0],$image2x[1]);[/COLOR]

    [COLOR=green]
    imagestring ($image3,$schriftgross,$schriftposx+1,$schriftposy+1,$domain,$farbe2);
    imagestring ($image3,$schriftgross,$schriftposx-1,$schriftposy-1,$domain,$farbe2);
    imagestring ($image3,$schriftgross,$schriftposx+1,$schriftposy-1,$domain,$farbe2);
    imagestring ($image3,$schriftgross,$schriftposx-1,$schriftposy+1,$domain,$farbe2);
    imagestring ($image3,$schriftgross,$schriftposx,$schriftposy,$domain,$farbe);[/COLOR]

    [COLOR=red]
    imagettftext ($image3,$fontsize,$fontangle,$schriftposx+1,$schriftposy+1,$farbe2,$fontfile,$firma);
    imagettftext ($image3,$fontsize,$fontangle,$schriftposx-1,$schriftposy-1,$farbe2,$fontfile,$firma);
    imagettftext ($image3,$fontsize,$fontangle,$schriftposx+1,$schriftposy-1,$farbe2,$fontfile,$firma);
    imagettftext ($image3,$fontsize,$fontangle,$schriftposx-1,$schriftposy+1,$farbe2,$fontfile,$firma);
    imagettftext ($image3,$fontsize,$fontangle,$schriftposx,$schriftposy,$farbe,$fontfile,$firma);[/COLOR]

    [COLOR=blue]
    ImageJpeg ($image3);[/COLOR]

    [COLOR=deeppink]
    ImageDestroy($image3);
    exit(); ?>[/COLOR]

  • #2
    imagettftext ( int im, int size, int angle, int x, int y, int col, string fontfile, string text)


    wo definierst du $farbe2 und $farbe bei dir ...

    Kommentar


    • #3
      habs gesehen ...

      aber :

      imagecolorallocate

      da muss der fehler liegen ...

      Kommentar


      • #4
        Danke für die schnelle Antwort, kannst du mir bitte schreiben, wie das genau aussehen muss. Habe leider nicht viel Ahnung von Gdlib.

        Gruss
        Matthias

        Kommentar


        • #5
          Schade das mir auch hier niemand weiterhelfen kann.

          Kommentar


          • #6
            schick mal nen link damit man sich das mal anschauen kann ...

            gruss
            iglo

            Kommentar


            • #7
              http://www.goa-fashion.de/bild2.php
              Mir geht es nicht um die Positionierung, nur um die Farbe.
              Danke
              Zuletzt geändert von Morrers; 03.02.2005, 04:05.

              Kommentar


              • #8
                mach mal zuerst den punkt hinter deiner grafik weg ...

                schau ich mir morgen nochmal an

                gruss
                iglo

                Kommentar


                • #9
                  Unternehme noch einen letzten und verzweifelten Versuch eine Lösung für mein Problem zu bekommen.

                  Kommentar


                  • #10
                    schonmal das Beispiel aus der Manual ausprobiert?
                    Das Beispiel-Skript erzeugt eine schwarze GIF-Grafik von 400x30 Pixel mit dem weissen Text "Teste..." im TT-Font Arial.
                    PHP-Code:
                    <?php
                    Header 
                    ("Content-type: image/gif");
                    $im imagecreate (40030);
                    $black ImageColorAllocate ($im000);
                    $white ImageColorAllocate ($im255255255);
                    ImageTTFText ($im2001020$white"/path/arial.ttf",
                                 
                    "Teste... Omega: Ω");
                    ImageGif ($im);
                    ImageDestroy ($im);
                    ?>
                    Sollte es das nicht, dann ist deine GD-Library vielleicht kaputt....und wenn es funktioniert, dann ersetzt zuerst mal die Schriftart Arial durch deine und probier es dann nochmal aus, danach setzt deinen Text rein, danach änder die Größe. Dann änder die Start-Pixel fest, danach änder die Startpixel auf deine dynamisch-berechneten Variablen und ganz zum Schluss änder noch den Ausgabetyp der Datei von gif nach jpg (Header nicht vergessen!)
                    Wenn es irgendwann nicht mehr funktioniert, dann weißt du wo der Fehler liegt. Wenn es am Ende immernoch funktioniert, obwohl das Bild rauskommt, was du haben willst, dann guck mal, was an dem gebastelten anders ist als an dem da oben!

                    Das ist einfaches debugging, was jeder normale Programmierer machen würde und was DU jetzt mal alleine machen musst, weil ich keinen Bock habe mich noch weitere 10 Minuten damit zu beschäftigen...immerhin hab ich von der GD-Library auch keine Ahnung und müsste den Fehler erst suchen. Und da DU das Problem hast, darfst auch DU DEINEN Fehler suchen!

                    vielleicht interessant:
                    www.php.net/imagettftext
                    www.php.net/imagecolorallocate

                    btw. wenn du nicht mehr weiter weißt und wieder ankommst, poste mit den PHP-Tags!
                    Deine tollen Farben oben sind ja schön und gut, aber ich hab trotzdem nichts von dem PHP-Code verstanden....und ein paar Umbrüche im Code sind auch ganz nett, pro Zeile reicht normalerweise EINE Anweisung. Auch wenn es nur die Festlegung von default-Werten an mehrere Variablen sind, kann man das auf mehrere Zeilen verteilen.
                    Die Anweisungen in einem Block werden normalerweise auch eingerückt....und wenn du das mal alles machst, dann antworten vielleicht auch ein paar mehr, weil sie dann keine Probleme mehr damit haben den Code zu lesen/verstehen...

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Hallo
                      habe den Text gekürzt, bzw aus der PHP Dokumentation übernommen, müsste eigentlich alles leserlich sein.
                      Bitte um weitere Lösungsvorschläge da ich nicht mehr weiter komme.
                      http://www.goa-fashion.de/bild4.php

                      $bilddatei="banner.jpg";
                      $image = imagecreatefromjpeg ($bilddatei); // Get a background
                      $font = 'tahoma.ttf'; // Get a font
                      $textcolor = imagecolorallocate($image,0,0,0); // Set text color
                      $text1 = "shenko.homedns.org"; // Here is our text
                      imagettftext($image, 50, 0, 20, 50, $textcolor, $font, $text1); // Write the text with a font
                      header("Content-type: image/jpeg"); // Its a JPEG
                      imagejpeg($image,'',90); // Zap it to the browser
                      imagedestroy($image); // Memory Freeupage

                      Gruß
                      Matthias

                      Kommentar


                      • #12
                        Truecolor gegen Truetype

                        Tach Leute ,
                        Ich zermarter mir seit Tagen am selben Problem des Hirn .
                        Ziel ist es , auf Grundlage eines Bildes (JPEG oder PNG) und eines Strings (sowie anderer Parameter , die hier nicht weiter relevant sind) ein neues Bild auszugeben - dabei soll der String mit TrueType auf das Bild geschrieben werden .
                        Ich hab mittlerweile folgendes rausbekommen :
                        - das Problem besteht bei TrueType Text in einem TrueColor Bild
                        - Textfarbe und Hintergrundfarbe stehen in direktem Zusammenhang
                        - der Blauwert hat keinerlei Auswirkungen
                        - wenn bei der Textfarbe der Rot- und/oder der Grünwert über 0 gesetzt wird , wird kein Text dargestellt
                        - der Rot- und Grünwert der Hintergrundfarbe bestimmen die Textfarbe , sie werden direkt übernommen

                        Da der Server mit dem ich leider arbeiten muss erst PHP 4.3 hat , kann ich keine Filter benutzen , die vielleicht(!) helfen könnten . Das einzige was mir noch einfällt , ist , ein temporäres Bild zu erstellen , den Text in schwarz reinzuschreiben , die Schwarzwerte Pixel für Pixel auszulesen und dann Pixel für Pixel über das Zielbild mit der gewünschten Farbe zu zeichnen , wobei der ausgelesene Schwarzwert als Opazität genutzt wird . Das müsste funktionieren , dürfte aber zu enormen Rechenzeiten führen . Hat jemand ne bessere Idee ? Hat jemand das mal unter PHP 5 getestet ?
                        Ich werd's am Wochenende auch nochmal unter PHP 5 testen ('n anderer Server , der hierfür allerdings derzeit nich zur Verfügung steht) .

                        Für jede Hilfe bin ich sehr dankbar ,
                        Hehler
                        [color=darkblue]
                        "Eine gute Theorie ist das Praktischste, was es gibt."
                        Gustav Robert Kirchhoff (1827-87), dt. Physiker
                        [/color]

                        Kommentar


                        • #13
                          ohne code und beispiellink kann wohl kaum jemand dein problem nachvollziehen.
                          Kissolino.com

                          Kommentar


                          • #14
                            Eigentlich sollten die folgenden Schnipsel ja ein beinahe identisches Ergebnis liefern , wobei ersteres vielleicht etwas pixelig wäre :
                            PHP-Code:
                            header ("Content-type: image/png");
                            $im imagecreate (40030);
                            $Weiss imagecolorallocate ($im,255,255,255);
                            $Schwarz imagecolorallocate ($im,0,0,0);
                            imagefill ($im,0,0,$Weiss);
                            imagettftext ($im,10,0,10,25,$Schwarz,"Schriften/Signature.ttf","Teste...");
                            imagepng ($im); 
                            PHP-Code:
                            header ("Content-type: image/png");
                            $im imagecreatetruecolor (40030); // <-- hier ist der Unterschied
                            $Weiss imagecolorallocate ($im,255,255,255);
                            $Schwarz imagecolorallocate ($im,0,0,0);
                            imagefill ($im,0,0,$Weiss);
                            imagettftext ($im,10,0,10,25,$Schwarz,"Schriften/Signature.ttf","Teste...");
                            imagepng ($im); 
                            Allerdings liefert letzteres dieses Ergebnis (original .php) :
                            [color=darkblue]
                            "Eine gute Theorie ist das Praktischste, was es gibt."
                            Gustav Robert Kirchhoff (1827-87), dt. Physiker
                            [/color]

                            Kommentar


                            • #15
                              deine gd spinnt.

                              ich bekomme mit beiden codes exakt dasselbe ergebnis => php4.3 gd2 bundled
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X