对亮度进行颜色选择

时间:2013-11-26 09:45:15

标签: php css sorting colors rgb

让我们看看,我给你一些关于我的问题的背景知识。 我是一个喜欢用这些东西画画的喷枪家伙。但我喷枪RC车身,我必须从里到外画。这意味着我反转绘制颜色,首先是深色,然后是白色。

现在,当我的顾客选择了他们想要我绘制设计的颜色(从下拉框中)时,我必须自己从黑暗到光明分类。有两种颜色很容易但是7种颜色开始变硬了。

所以我需要的是这个; 我需要一个PHP脚本,按照绘画顺序(从暗到亮)对颜色(当前在rgb中)进行排序。我用Google搜索了但我没有找到那个有用的东西,我希望你的家伙可以帮助我。

2 个答案:

答案 0 :(得分:1)

PHP有一组函数(usort(), uasort(), uksort()),允许您使用比较函数对数组进行排序。因此,如果您从this question获取其中一个公式,则可以使用该值对数组进行排序。

$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);

答案 1 :(得分:0)

非常first result on googleGitHub上显示了这一点。

看起来您应该可以将它用于您的目的。