Php 列表中最漂亮的颜色

Php 列表中最漂亮的颜色,php,image,colors,Php,Image,Colors,我有一个从图像中提取的颜色列表(带有),我想选择最生动的一个(如果我有灰色和浅蓝色,例如,更喜欢浅蓝色),将其用作页面背景 例如,对于此图像: 我有这种颜色: 我想得到#3195ab颜色,它不是最主要的颜色,但更生动 我可以使用什么公式来确定它?使用颜色的HSL表示,并检查饱和度和光照的值,饱和度越高越好,光照应可能为50%: 使用颜色的HSL表示,并检查饱和度和光照值,饱和度越高越好,光照可能为50%: 多亏了@ceyquem,我终于想出了办法 这是我的密码: <?php //

我有一个从图像中提取的颜色列表(带有),我想选择最生动的一个(如果我有灰色和浅蓝色,例如,更喜欢浅蓝色),将其用作页面背景

例如,对于此图像:

我有这种颜色:

我想得到#3195ab颜色,它不是最主要的颜色,但更生动


我可以使用什么公式来确定它?

使用颜色的HSL表示,并检查饱和度和光照的值,饱和度越高越好,光照应可能为50%:


使用颜色的HSL表示,并检查饱和度和光照值,饱和度越高越好,光照可能为50%:


多亏了@ceyquem,我终于想出了办法

这是我的密码:

<?php   
// extracting picture colors using http://www.coolphptools.com/color_extract
$GetMostCommonColors = new GetMostCommonColors();
$filename = 'picture.jpg';
$colors = $GetMostCommonColors->Get_Color($filename);

$array_by_score = array();

// calculating image score with this parameters : saturation * diff from nice light (50%)
foreach ($colors as $color => $quantity) {
    $hsl = $GetMostCommonColors::hexToHsl($color);

    $dist_from_light = $hsl['L'] - 0.5;

    $array_by_score[$hsl['S'] * (1 - $dist_from_light).' '][] = $color;
}

// getting best result
ksort($array_by_score);
$best_colors = end($array_by_score);

// here is the best color
$best = end($best_colors);

多亏了@ceyquem,我终于想出了办法

这是我的密码:

<?php   
// extracting picture colors using http://www.coolphptools.com/color_extract
$GetMostCommonColors = new GetMostCommonColors();
$filename = 'picture.jpg';
$colors = $GetMostCommonColors->Get_Color($filename);

$array_by_score = array();

// calculating image score with this parameters : saturation * diff from nice light (50%)
foreach ($colors as $color => $quantity) {
    $hsl = $GetMostCommonColors::hexToHsl($color);

    $dist_from_light = $hsl['L'] - 0.5;

    $array_by_score[$hsl['S'] * (1 - $dist_from_light).' '][] = $color;
}

// getting best result
ksort($array_by_score);
$best_colors = end($array_by_score);

// here is the best color
$best = end($best_colors);

您可以计算颜色的数量,选择出现最多的颜色并将其设置为背景。至于你的另一个问题“是否有任何PHP脚本”通过PHP是可能的,但你必须做一些好的研究你已经做了什么?Stackoverflow不是代码编写服务。请告诉我们你有什么以及你的问题在哪里。@Seb我有一个用颜色提取的列表,我需要选择最生动的颜色。我用一个例子更新了我的问题。你可以计算颜色的数量,选择出现最多的颜色,并将其设置为背景。至于你的另一个问题“是否有任何PHP脚本”通过PHP是可能的,但你必须做一些好的研究你已经做了什么?Stackoverflow不是代码编写服务。请告诉我们你有什么以及你的问题在哪里。@Seb我有一个用颜色提取的列表,我需要选择最生动的颜色。我用一个例子更新了我的问题。