Öncelikle ben size Particletree bu mükemmel blog yazısı bakmak gerektiğini düşünüyorum.
Söyleniyor, ben onların smarty_modifier_contrast () işlevini kullanın ve bunu belirli ihtiyaçlarını karşılamak için biraz, gibi bir şey değiştirmek istiyorsunuz:
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));
}
Yani sadece bu durumda ben bir değişken kullandım, (don't forget to drop the #
! ) arka plan için herhangi bir rasgele bir renk kullanın ve sonra diziye diğer tüm renkleri geçmesi gerekir argümanların sayısı ancak bu renkleri tek bir dizi kabul böylece değiştirebilirsiniz - daha sonra otomatik olarak $bgcolor
bağlı olarak koyu ya da hafif renk seçin ve okunurluk için yeterince iyi bir kontrast sağlayacaktır:
function color_contrast($bgcolor, $colors = array())
{
return (hexdec($bgcolor) > 0xffffff / 2) ? min($colors) : max($colors);
}
Seçmek için $bgcolor
, ben saturation veya luminance gibi bu görevi size yardımcı olmak için kullanımı ikinci bir işlevi, önceden söylediğimiz rastgele gibi bunu, bu gerçekten olabilir Sizin için ne arıyorsanız bağlıdır.