Edited at

色コードの明暗を判定する

More than 1 year has passed since last update.


課題

例えば、「#4631b9」のような色のコード。

この色は、比較的「暗い色」なのか?「明るい色」なのか?


使う場面

背景色を「#4631b9」にした場合、文字は「白」が良いか?「黒」が良いか?

背景色を動的に変える場合、自動で判定したい。


公式

( $r*0.299 + $g*0.587 + $b*0.114 ) / 2.55

PHPコード


getLuminance.php

<?php

function getLuminance( $rgb ) {

$r = hexdec( mb_substr( $rgb, 0, 2 ) );
$g = hexdec( mb_substr( $rgb, 2, 2 ) );
$b = hexdec( mb_substr( $rgb, 4, 2 ) );

return ( $r*0.299 + $g*0.587 + $b*0.114 ) / 2.55;

}

echo getLuminance( "4631b9" );

?>


真っ白#ffffffなら100、真っ黒#000000なら0が返る。

上のコードの場合、約28が返るので、比較的暗い色だから、文字には明るい白が良い。


参考URL

http://fromkato.com/color/color.php?id=4631b9 ← #4631b9 は、この色