次のように定義された、16 進数の有効な #RGB カラーを想像してください。$color = "#f7b9a0";
ここで、この $color からわずかに明るい/暗い他の 2 つの色を php に派生させたいと考えています (色相/色は同じですが、明るさを変更しただけです)。これを達成するにはどのような方法がありますか? これを生成するコードは何ですか?次のような単純なものが必要だと感じています。
brightness(input rgb color, ± number of steps); // function outputs the new RGB
// ?? What php code should go here??
理想的には、html に次のようなものを入れたいと思っています。
.classDefault {color:<?=$color?> }
.classLighter {color:<?=brightness($color,+10)?> } /* 10 steps brighter */
.classDarker {color:<?=brightness($color,-25)?> } /* 25 steps darker */
関数にはどの PHP コードを入れる必要がありbrightness();
ますか? 私の夢が叶うために?
提案やコードはどちらも大歓迎です!
以下の回答から更新されました:
function alter_brightness($colourstr, $steps) {
$colourstr = str_replace('#','',$colourstr);
$rhex = substr($colourstr,0,2);
$ghex = substr($colourstr,2,2);
$bhex = substr($colourstr,4,2);
$r = hexdec($rhex);
$g = hexdec($ghex);
$b = hexdec($bhex);
$r = max(0,min(255,$r + $steps));
$g = max(0,min(255,$g + $steps));
$b = max(0,min(255,$b + $steps));
return '#'.dechex($r).dechex($g).dechex($b);
}
### NOW LETS DEFINE MY COLOR
$color = "#2233FF";
### DERIVED BRIGHTER COLORS
$color1 = brightness($color,25);
$color2 = brightness($color,50);
$color3 = brightness($color,75);
### DERIVED DARKER COLORS
$color4 = brightness($color,-25);
$color5 = brightness($color,-50);
$color6 = brightness($color,-75);
<!-- BRIGHTER -->
<div style=" background-color:<?=$color3?>"><?=$color3?></div>
<div style=" background-color:<?=$color2?>"><?=$color2?></div>
<div style=" background-color:<?=$color1?>"><?=$color1?></div>
<!-- DEFINED CONSTANT -->
<div style=" background-color:<?=$color?>"><?=$color?></div>
<!-- DARKER -->
<div style=" background-color:<?=$color4?>"><?=$color4?></div>
<div style=" background-color:<?=$color5?>"><?=$color5?></div>
<div style=" background-color:<?=$color6?>"><?=$color6?></div>
明るい色は機能しますが、暗い色は機能しません。まあ、半分の解決策は解決策の少なくとも大きな部分なので、どうもありがとうございました!