让我们看看,我给你一点关于我的问题的背景知识。我是一个喜欢用这种东西作画的人。但我喷枪RC车身的,我必须油漆从内到外。这意味着我画的颜色相反,所以首先是深色,最后是白色。
现在,当我的客户(从下拉框中)选择了他们希望我绘制设计的颜色时,我必须自己从暗到亮进行排序。两种颜色很容易,但超过7种颜色就开始变得困难了。
所以我需要的是这个;我需要一个php脚本,按照绘画顺序(从暗到亮)对颜色(目前在rgb中)进行排序。我在谷歌上搜索过,但没有找到有用的,我希望你们能帮我。
PHP有一组函数(usort(), uasort(), uksort()
),允许您使用比较函数对数组进行排序。因此,如果你从这个问题中选择一个公式,你可以使用该值对数组进行排序。
$colors = array(
'#000000',
'#FF0000',
'#00FF00',
'#0000FF',
'#FFFF00',
'#00FFFF',
'#FF00FF',
'#C0C0C0',
'#FFFFFF'
);
function colorToLum($color) {
$red = hexdec(substr($color, 1, 2));
$green = hexdec(substr($color, 3, 2));
$blue = hexdec(substr($color, 5, 2));
return (0.299 * $red + 0.587 * $green + 0.114 * $blue);
}
usort(
$colors,
function ($one, $two) {
return colorToLum($one) - colorToLum($two);
}
);
var_dump($colors);
谷歌上的第一个结果在GitHub上找到了这个。
看起来你应该能够将它用于你的目的。