tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
483
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Hi,

    folgender Code:

    PHP-Code:
    <?php
    // Dateiname "bild_datei.php"
    header("Content-type: image/png");

    $pics_color_array = array('#004477'=>'0,69,119','#0069B3'=>'0,105,170','#002F55'=>'0,47,85','#EE9C00'=>'238,156,0','#E7651A'=>'231,101,26','#FFAEAE'=>'255,174,174','#FF0000'=>'255,0,0','#DF0029'=>'223,0,41','#6C000E'=>'108,0,14','#00B03B'=>'0,176,59','#89CA9D'=>'137,202,157','#004B2C'=>'0,75,44','#E2007F'=>'226,0,127','#F4A0BD'=>'244,160,189','#9B115B'=>'155,17,91','#66097B'=>'102,9,123','#4650A1'=>'70,80,161','#766455'=>'118,100,85','#CBB99C'=>'203,185,156','#52443C'=>'82,68,60','#EED2A7'=>'238,210,167','#737373'=>'115,115,115','#BFBFBF'=>'191,191,191','#4D4D4D'=>'77,77,77','#FFFFFF'=>'255,255,255','#000000'=>'0,0,0');

    foreach(
    $pics_color_array AS $pc_col => $colorss) { 
        if(
    $web_color_pic_view == $pc_col) { 
            
    $one explode(","$colorss);
            
    $bona $one[0]; $bonb $one[1]; $bonc $one[2];
        }
    }
    $Ga imagecreate(2020);
    $Hintergrundfarbe imagecolorallocate($Ga$bona$bonb$bonc);
    imagestring($Ga);
    imagepng($Ga); 
    ?>
    wird in eine Funktion eingebunden. Diese Funktion enthält den Abschnitt:
    PHP-Code:
    <?php
    ...
    $web_color_pic_view $farbe_aus_db;
    echo 
    "<img src=\"bild_datei.php\" width=\"25\" height=\"25\" alt=\"Bild\" />";
    ?>
    Der Ablauf ist soweit korrekt.

    Das Problem ist, die VAR "$web_color_pic_view" enthält eine Farbe, welche nicht erkannt wird. Statt dessen wird einfach nur die letzte Farbe des Array's ausgegeben -> schwarz.

    Wo liegt der Fehler?
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Es findet ja auch keinerlei Parameterübergabe statt.

    Probier mal Folgendes:
    PHP-Code:
    <?php

        
    // Dateiname "bild_datei.php"
        
    header('Content-Type: image/png');

        if( isset(
    $_GET['color-value']) && preg_match('<#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})>i'trim($_GET['color-value']), $matches) ) {
            
    $im imagecreate(2020);
            
    imagecolorallocate($imhexdec($matches[1]), hexdec($matches[2]), hexdec($matches[3]));
            
    imagepng($im);
            
    imagedestroy($im);
            exit;
        }
        
    header('HTTP/1.1 400 Bad Request'true);
     
    ?>
    PHP-Code:
    echo '<img src="bild_datei.php?color-value='.$farbe_aus_db.'" alt="" />'
     
    Markus Wulftange

  3. #3
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Hi Gumbo,

    werde ich heute probieren. Danke dir vorerst.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  4. #4
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Also das nicht.

    Habe nun auch schon mehrere Varianten probiert und nüx.



    Bei Deiner Variante gibt es kein Ergebnis. Wenn ich bei meiner Variante ein $_REQUEST einbinde, gibt es wieder ein Bild mit der Farbe schwarz. Die Schleife läuft durch aber gibt nicht das gesuchte zurück.

     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Mein Gedanke war der, dass die dezimalen Farbwerte aus den hexadezimalen errechnet werden, statt sie anhand einer „Vergleichstabelle“ umzuformen. Übrigens meine ich, dass noch ein paar Parameter bei der imagestring()-Funktion gesetzt werden müssten.
     
    Markus Wulftange

  6. #6
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Zitat Zitat von Gumbo
    Mein Gedanke war der, dass die dezimalen Farbwerte aus den hexadezimalen errechnet werden, statt sie anhand einer „Vergleichstabelle“ umzuformen. Übrigens meine ich, dass noch ein paar Parameter bei der imagestring()-Funktion gesetzt werden müssten.
    Es geht nich darum, eine Schrift einzubinden, sondern einfach nur die Farbe anzuzeigen. Deshalb lasse ich ImageString() aussen vor.

    Mal sehen, wenn ich weis wie, teile ich es mit. Es sei denn, es hat noch jemand eine Idee, wie das Problem zu lösen ist.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Also bei mir funktioniert mein Vorschlag wunderbar. Welchen Testwert übergibst du denn dem Skript?
     
    Markus Wulftange

  8. #8
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    es ist eine function die aufgerufen wird.

    in die funktion werden die Farbwerte übergeben per Variable. Diese Farbwertvariablen sind dann ausschlaggebend für die Farberstellung.

    Ich bekomme immer nur schwarz.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  9. #9
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Hast du meinen Vorschlag 1:1 übernommen?
     
    Markus Wulftange

  10. #10
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    ja und ging nicht. Es wurde kein Bild erzeugt.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  11. #11
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Gibt es denn eine Fehlermeldung? Wird etwas ausgegeben, wenn die Ausgabe als Klartext klassifiziert wird?
     
    Markus Wulftange

  12. #12
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    hatte bisher keine.
    Werde das Teil aber im Laufe der Woche noch weiter testen. Muss fertig werden damit
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  13. #13
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Hi Gumbo,

    also folgende Situation:

    in einer funktion wie z.B.:

    PHP-Code:
    <?php
    function bilderzeugung() {
    ....
    // Entsprechende Variablen werden per "global" übergeben
        
    echo "<span class=\"normb\">$car_side_j: </span> <select name=\"web_text_color\" class=\"select\">";
        foreach(
    $schrift_farbe AS $schluessel => $text_color) { echo "<option value=\"$schluessel\" style=\"color:$schluessel;\""; if($car_web_c == $schluessel) { echo " selected "; } echo ">$text_color</option>"; }
        echo 
    "</select>";

    // hier ist nun das Thema bzgl. Bild

        
    echo "<img src=\"pics.php?cv=$car_web_c\" width=\"20\" height=\"20\" border=\"1\" alt=\"$button_carshow_c\" title=\"$button_carshow_c\" />";
    }
    Diese Funktion wird an entsprechender Stelle in einer anderen PHP-Datei aufgerufen.

    Als Bild kommt lediglich "schwarz". Die eigentliche Farbe, welche angezeigt werden sollte ist #002F55 bzw. 238,156,0.

    Ich hab deine, als auch weitere Möglichkeiten probiert, aber es gibt lediglich schwarz. Obwohl die Farbe aus einer Datenank (#002F55) kommt und als $car_web_c deklariert wird.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  14. #14
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    So, hab die Sache erledigt.

    Fehler war, Raute wird über REQUEST oder GET nicht erkannt oder nicht ausgelesen.
    Ergo - zuvor Schleife mit der Farbwahl aus DB verglichen mit der Array-Farbe und diese dann zurück auf $_GET.

    Jetzt wird die korrekte Farbe angezeigt.

    Danke nochmal.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

Ähnliche Themen

  1. ImageCreate per PHP
    Von Sasser im Forum PHP
    Antworten: 6
    Letzter Beitrag: 28.05.08, 15:21
  2. imagecreate Problem
    Von bittegutfinden im Forum PHP
    Antworten: 8
    Letzter Beitrag: 15.03.03, 22:02
  3. Farbänderung bei imagecreate
    Von d4k4 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 23.01.03, 17:59
  4. imagecreate
    Von dennislassiter im Forum PHP
    Antworten: 2
    Letzter Beitrag: 06.07.02, 23:18
  5. Farbtiefe bei Imagecreate in PHP
    Von BigAthlon im Forum PHP
    Antworten: 0
    Letzter Beitrag: 13.08.01, 23:41