Sven: nächste websichere Farbe berechnen

Hi!

ich google bestimmt schon eine Stunde, wie man die nächste websichere Farbe berechnen kann.

folgende Wörter habe ich z.b. probiert calculate websafe, websichere Farbe berechnen

welches Schlagwort fehlt mir? ;-)

Wie kann man die nächste websichere Farbe berechnen?

ich möchte die websichere Farbe dann mit php berechnen

ps. bitte keine Diskusion über websichere Farben :-)

Sven

  1. Hellihello Sven,

    sowas?

      
    <?php  
     $Farbwerte=array("0","3","6","9","C","F");  
     $Rotwert="0";  
     $Grünwert="0";  
     $Blauwert="0";  
      
     foreach($Farbwerte as $Farbwert) {  
     $Rotwert=$Farbwert;  
    ?>  
    <table style="font-family:Courier">  
    <?php  
      foreach($Farbwerte as $Farbwert) {  
       $Grünwert=$Farbwert;  
    ?>  
     <tr>  
    <?php  
       foreach($Farbwerte as $Farbwert) {  
       $Blauwert=$Farbwert;  
       $RGB="#$Rotwert$Rotwert$Grünwert$Grünwert$Blauwert$Blauwert";  
    ?>  
      <td style="color:white;background-color:<?php echo $RGB;?>"><?php echo $RGB;?></td>  
    <?php  
       }  
    ?>  
     </tr>  
    <?php  
      }  
    ?>  
    </table>  
    <?php  
     }  
    ?>  
    
    

    Gruß,

    frankx

    1. Hi

      sowas?

      nein :-)

      bei 111111 möchte ich 000000 zurück erhalten

      Sven

      1. Hellihello Sven,

        nein :-)

        bei 111111 möchte ich 000000 zurück erhalten

          
        <?php  
        function runde_ab_hex($Wert) {  
         $dec=hexdec($Wert);  
         //echo $dec/51;  
         $floor_dec=floor(($dec/51))*51;  
         //echo $foor_dec;  
         $hex_floor=dechex($floor_dec);  
         echo $hex_floor;  
         }  
         runde_ab_hex("CD"); // "cc"  
         runde_ab_hex("98");// "66"  
        ?>  
        
        

        ?

        Du musst natürlich dann erstmal den Wert aufteilen in rot=11, grün=11, und blau=11, dann die funktion nehmen und dann wieder zusammenbauen.

        Gruß,

        frankx

        1. Hi

          <?php
          function runde_ab_hex($Wert) {
          $dec=hexdec($Wert);
          //echo $dec/51;
          $floor_dec=floor(($dec/51))*51;
          //echo $foor_dec;
          $hex_floor=dechex($floor_dec);
          echo $hex_floor;
          }
          runde_ab_hex("CD"); // "cc"
          runde_ab_hex("98");// "66"
          ?>

            
          was ist eigentlich von der Performance her besser?  
            
          dein oder [mit ein switch](https://forum.selfhtml.org/?t=147014&m=953949)  
            
          Sven
          
          1. was ist eigentlich von der Performance her besser?

            Vermutlich ist die mathematische Variante schneller. Allerdings wird sich das bei den 6 Zeilen Code nur minimal auswirken (wenn überhaupt) solange du den Code nicht in ner großej´n Schleife aufrufst, oder so.

          2. Hellihello Sven,

            beim Switch muss er ja nur einmal rechnen, oder? Allein das floor erfordert ja schon diesen Vergleich.

            Gruß,

            frankx

  2. Hallo Sven

    Wie kann man die nächste websichere Farbe berechnen?

    Runde jeden Einzelfarbwert auf das nächste Vielfache von 33.

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. Hi

      Wie kann man die nächste websichere Farbe berechnen?
      Runde jeden Einzelfarbwert auf das nächste Vielfache von 33.

      das hört sich logisch an

      nur wie stelle ich das an?

      Sven

      1. nur wie stelle ich das an?

        Durch #33 Teilen, Auf ne Ganzzahl runden und wieder mit 33 multiplizieren.

        1. Hi

          nur wie stelle ich das an?

          Durch #33 Teilen, Auf ne Ganzzahl runden und wieder mit 33 multiplizieren.

          müßte doch auch so dann gehen, oder?

          switch(true) {  
           case $x<=25:  $y=0;   break;  
           case $x<=76:  $y=51;  break;  
           case $x<=127: $y=102; break;  
           case $x<=178: $y=153; break;  
           case $x<=229: $y=204; break;  
           case $x<=255: $y=255; break;  
          }
          

          Sven

          1. müßte doch auch so dann gehen, oder?

            switch(true) {

            case $x<=25:  $y=0;   break;
            case $x<=76:  $y=51;  break;
            case $x<=127: $y=102; break;
            case $x<=178: $y=153; break;
            case $x<=229: $y=204; break;
            case $x<=255: $y=255; break;
            }

              
              
            Denke schon, ja. Wieso fragst du anstatt es auszuprobieren? ;)  
              
            MfG Jonathan