Ankündigung

Einklappen
Keine Ankündigung bisher.

HEX to RGB

Einklappen

Neue Werbung 2019

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

  • HEX to RGB

    Hi leute.
    Wie kann ich mit PHP einen farbwert im hexadezimal system in RGB werte umrechnen?

    Danke, stefan
    [url=http://m7s.de/100.html]Klick mich
    [img]http://m7s.de/100.png[/img][/URL]

    [img]http://www3.stefanmaier.com/SONSTIGES/FSL/b-day.jpg[/img]

  • #2
    http://www.phpfuncs.org/?content=show&id=46&sid=

    Kommentar


    • #3
      hexdec();

      danke, erledigt.
      [url=http://m7s.de/100.html]Klick mich
      [img]http://m7s.de/100.png[/img][/URL]

      [img]http://www3.stefanmaier.com/SONSTIGES/FSL/b-day.jpg[/img]

      Kommentar


      • #4
        PHP-Code:
        <?php
        error_reporting
        (E_ALL);

        function 
        HEXtoRGB ($RGB) {
         
        $R hexdec(substr($RGB,1,2));
         
        $G hexdec(substr($RGB,3,2));
         
        $B hexdec(substr($RGB,5,2));
         return 
        $R.','.$G.','.$B;
        }

        echo 
        HEXtoRGB('#FF0000');

        ?>

        Kommentar


        • #5
          Wie könnte man

          Code:
          error_reporting(E_ALL); 
          
          function HEXtoRGB ($RGB) { 
           $R = hexdec(substr($RGB,1,2)); 
           $G = hexdec(substr($RGB,3,2)); 
           $B = hexdec(substr($RGB,5,2)); 
           return $R.','.$G.','.$B; 
          } 
          
          $color = HEXtoRGB('#FF0000');
          mit

          Code:
          $fcolor = imagecolorallocate($image, 255, 255,255);
          verknüpfen?

          Kommentar


          • #6
            PHP-Code:
            <?php
            $h 
            '0f1007';
            $rgb array_map('hexdec'str_split($h2));
            print_r($rgb_dec);
            ?>
            und dann einfach $rgb[0], [1] und [2] übergeben.
            Leider ist str_split php5 only.

            Kommentar


            • #7
              Es klappt wunderbar.

              Nur habe ich leider da wo es eingesetzt werden soll keine php5 installiert.

              Gibt es vielleicht eine Alternative?

              Kommentar


              • #8
                natürlich. Einfach die Funktion so ändern, dass sie direkt ein Array zurückgibt.
                PHP-Code:
                <?php
                function HEXtoRGB ($RGB) {
                 
                $R hexdec(substr($RGB,1,2));
                 
                $G hexdec(substr($RGB,3,2));
                 
                $B hexdec(substr($RGB,5,2));
                 return array(
                $R,$G,$B);

                ?>

                Kommentar


                • #9
                  $R = hexdec(substr($RGB,1,2));
                  Setzt natürlich immer voraus, dass am Anfang ein # steht
                  Vorschlag:

                  PHP-Code:
                  <?php
                  function HEXtoRGB ($RGB) { 
                   
                  $RGB trim$RGB' |#');
                   
                  $R hexdec(substr($RGB,1,2)); 
                   
                  $G hexdec(substr($RGB,3,2)); 
                   
                  $B hexdec(substr($RGB,5,2)); 
                   return array(
                  $R,$G,$B); 
                  ?>
                  trim( $RGB, ' |#'); = Leerzeichen und # raushauen ...

                  Kommentar


                  • #10
                    Jetzt verstehe ich garnichts mehr.

                    wenn ich es mit
                    Code:
                     <?php 
                    $h = '0f1007'; 
                    $rgb = array_map('hexdec', str_split($h, 2)); 
                    print_r($rgb_dec); 
                    ?>
                    und mit

                    Code:
                    $rgb[0];
                    auslese ist es für mich noch verständlich.


                    Wenn ich es mit

                    Code:
                    <?php 
                    function HEXtoRGB ($RGB) {  
                     $RGB = trim( $RGB, ' |#'); 
                     $R = hexdec(substr($RGB,1,2));  
                     $G = hexdec(substr($RGB,3,2));  
                     $B = hexdec(substr($RGB,5,2));  
                     return array($R,$G,$B);  
                    ?>
                    mache, wie muß ich dann z.b. #FFFFFF einlesen ist das $RGB ='FFFFFF'?

                    Und dann ich dann auch mit $rgb[0] wieder auslesen oder ist es nur möglich wenn str_split verwendet wird?

                    Sorry, für die Fragen, aber ich bin Anfänger und möchte dazulernen.

                    Kommentar


                    • #11
                      Schau dir doch einfach mal die Kommentare in der Manual-Seite[1] von
                      str_split() an. Da stehen doch Funktionen, die str_split() "nachbauen", wenn
                      es nicht existiert. Dann kannst du die Funktion auch mit PHP 4 benutzen. Und,
                      list() verteilt Array-Elemente auf Variablen:

                      PHP-Code:
                      <?php
                      $h 
                      '0f1007';
                      list(
                      $r$g$b) = array_map('hexdec'str_split($h2)); 
                      $fcolor imagecolorallocate($image$r$g$b);
                      ?>
                      Basti

                      [1] http://php.net/manual/en/function.str-split.php

                      Kommentar

                      Lädt...
                      X