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;
}
参考サイト
関連記事
-
-
PHPのdefine()で配列データの定義と利用方法について
他社が作成したPHPのソースコードを拝見した際に定数で配列が定義されていた。配列 ...
-
-
PHPでJavaScriptを圧縮するライブラリ「JShrink」の利用方法
サイト内でJavaScriptを用いる場合、外部のライブラリやプラグインだと圧縮 ...
-
-
PHPにて配列の出力時にジェネレータを利用してメモリを節約する方法
PHPにて大量のデータが格納された配列をforeach等でループ処理するような場 ...
-
-
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...
-
-
メモリキャッシュシステムであるMemcachedをPHPにて利用する方法
メモリキャッシュシステムであるMemcachedのインストール方法、IP制限、P ...