まず、Particletreeのこの優れたブログ投稿をご覧になることをお勧めします。
そうは言っても、彼らの smarty_modifier_contrast() 関数を使用して、特定のニーズに対応するために少し変更します。
function color_contrast($bgcolor, $color1, $color2, $color3, ...)
{
return (hexdec($bgcolor) > 0xffffff / 2) ? min(array_slice(func_get_args(), 1)) : max(array_slice(func_get_args(), 1));
}
したがって、背景に任意のランダムな色を使用する必要があり ( !をドロップすることを忘れないでください#)、他のすべての色を配列に渡す必要があります。この場合、可変数の引数を使用しましたが、変更できます単一の色の配列を受け入れるようにします。次に、に応じて最も暗い色または最も明るい色を自動的に選択し、$bgcolor読みやすい十分なコントラストを提供します。
function color_contrast($bgcolor, $colors = array())
{
return (hexdec($bgcolor) > 0xffffff / 2) ? min($colors) : max($colors);
}
を選択するには、前に述べたように、彩度や輝度$bgcolorなどのこのタスクを支援する 2 番目の関数を使用してランダムに行うことができます。これは、実際に探しているものに依存します。