我正在開發一個動態存儲項目,並使用循環打印產品的所有顏色選項作爲顏色框,但是我真的需要爲這些顏色添加「邊框」這是輕的。我試着像下面卻是非常有限的,它實際上是僅限於白色而已,它不會趕上像#ddd,#eea ...等如何使用PHP檢測「淺色」
這裏是我的循環:
foreach($colors as $color) {
$color = trim($color);
if (!empty($color)) {
if (in_array($color, array('white','White','#fff','#FFF','#FFFFFF','#ffffff'))) {
$bordercolor = '#bbb';
} else {
$bordercolor = $color;
}
}
}
顏色是來自後端的數組,例如:White,#000,#cc0000等。在if/else條件中添加所有異常也不切實際嗎?
谷歌的' RGB到HSV(HSL)' - 色相飽和度值(亮度)。較高的亮度值是較淺的顏色。 – Peter
這個問題可以幫助你:[PHP中的RGB到HSV](http://stackoverflow.com/q/1773698/112968)。然後您可以簡單地檢查V值是否超過某個閾值。 – knittl
http://stackoverflow.com/questions/5614011/intelligent-color-detection檢查這個 –