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;
}
参考サイト
関連記事
-
-
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...
-
-
PHPでファイルアップロード時にディレクトリトラバーサル攻撃の対策をする方法
あるシステムのセキュリティ対策としてディレクトリトラバーサル(Directory ...
-
-
PHPでGoogle翻訳を手軽に扱えるライブラリ「google-translate-php」の利用方法
サイト内で一部テキストのGoogle翻訳を行いたい。ただ、Google Clou ...
-
-
PHPからDBX Platformを利用してDropbox内のファイルを削除する方法
以前にPHPからDropboxのファイル一覧のデータ(ファイル名や更新日時等)を ...
-
-
PHPでメルマガを配信する方法(1件ずつ送信するパターン)
以前にPHPでメルマガを配信する方法を書いたけど、BCCだと相手の名前などユーザ ...