PHPで指定したカラーコードの反対色を計算し、カラーコードとして出力する方法
あるシステム内でユーザが指定したカラーコードをCSSで指定した上で出力するというケースがあった。例えば「#ff0000」という文字列を赤で表示するというもの。ただ、背景色は白だったため指定したカラーコードによっては見づらい場合があった。そのため反対色を自動で計算し、背景色に指定したい。以下に対応方法をメモ。
対応方法
ソースコード
<?php
var_dump(color_inverse('#ff0000')); //string(7) "#00ffff"
var_dump(color_inverse('#00ff00')); //string(7) "#ff00ff"
var_dump(color_inverse('#0000ff')); //string(7) "#ffff00"
function color_inverse($color){
$color = str_replace('#', '', $color);
if( strlen($color) != 6 ){
return '000000';
}
$rgb = '';
for( $x = 0; $x < 3; $x++ ){
$c = 255 - hexdec(substr($color, (2 * $x), 2));
$c = ($c < 0) ? 0 : dechex($c);
$rgb .= (strlen($c) < 2) ? '0'.$c : $c;
}
return '#'.$rgb;
}
参考サイト
関連記事
-
-
Codeigniter4でエラーログ設定、出力及び確認方法
Codeigniter4.4.4でエラーログの設定を行い特定のファイルに出力させ ...
-
-
日付の比較で○日前というのを調べる
PHP及びjavascriptで日付の比較をしたく、締切日とかではなく ○日前と ...
-
-
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...
-
-
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...
-
-
PHPでCookie保存時にSameSite属性を設定する方法
あるシステムのセキュリティ対策としてCookie保存時にSameSite属性をS ...