Php 如何找到两种颜色之间的所有颜色?

Php 如何找到两种颜色之间的所有颜色?,php,image,image-processing,Php,Image,Image Processing,我需要选择两种颜色,然后在它们之间找到X种颜色(或色调),每种颜色之间的距离相同 我还是不明白颜色是怎么形成的。我应该尝试使用HSV、RGB或十六进制吗?最简单的方法是获取第一种和第二种颜色的RGB值,并将它们一起插值 $b1 = $color1['blue']; $b2 = $color2['blue']; for($i=0; $i<$X; $i++){ $b = round($b1 + (1.0 * ($b2 - $b1) * $i / $X)); // Do the

我需要选择两种颜色,然后在它们之间找到X种颜色(或色调),每种颜色之间的距离相同


我还是不明白颜色是怎么形成的。我应该尝试使用HSV、RGB或十六进制吗?

最简单的方法是获取第一种和第二种颜色的RGB值,并将它们一起插值

$b1 = $color1['blue'];
$b2 = $color2['blue'];

for($i=0; $i<$X; $i++){
    $b = round($b1 + (1.0 * ($b2 - $b1) * $i / $X));
    // Do the same for the red / green values
}
$b1=$color1['blue'];
$b2=$color2[‘蓝色’];

对于($i=0;$i我认为您最好的选择是使用表示法。然后您可以使用色调值进行插值。您将获得比使用RGB插值更好的结果。

除非您确实知道您需要哪种颜色,否则几乎不可能获得两种颜色之间的所有颜色

只需看看颜色的表示-有些轮子的颜色如下:

你可以选择一些直线上的颜色,顺时针或逆时针,你会得到不同的结果

对于RGB颜色,它们的数量是有限的,等于16 777 216(245^3)。但您真的要选择所有这些颜色吗?选择一种方法“区分”其他两种颜色,然后应用它并找到这些中间颜色。没有“单一和唯一”选项在两种不同颜色之间选择颜色的最佳方法

编辑:


或者,您可以使用并选择所有与两种基色更接近的颜色,而不是这些基色彼此更接近的颜色。但我将把所有计算留给您。

颜色用位表示,就像计算机中的任何其他颜色一样


#FFFFFF
表示白色,
#000000
表示黑色。这是RGB表示法,用十六进制表示。若要获取每种颜色的数值,请将其转换为无符号整数。然后您需要对范围进行分割。

通常,两种颜色之间的颜色是连接列的线上的颜色因此,在RGB颜色空间中,颜色与其他颜色空间中的颜色不同。

你认为“RGB”和“hex”之间的区别是什么?@Ignacio Vazquez Abrams:我打赌它们只是第一个谷歌页面上“php一些颜色”查询的首字母缩略词:-sb但在RGB(0,0,0)(黑色)和RGB(255255)的情况下它将找到所有颜色(超过1600万)。如果您选择一些浅色作为第一种颜色,而选择一些深色作为第二种颜色,则会发生类似的情况。OP确实需要考虑他需要什么颜色。@Tadeck:它不会找到所有颜色,它受本例中感兴趣的值的数量限制。
$X
。此外,从黑到白将产生一系列灰色您的解决方案不清楚,也许您是对的。
$X
是介于两者之间的颜色数吗?如果是,此解决方案也不是最好的解决方案-只是因为没有单一的方法确定两种不同颜色之间的颜色(请参阅我的答案)@Tadeck:他说他想在两种颜色之间找到
X
色调,因此变量
X
。我是说有很多不同的方法来获得这些颜色,没有单一且唯一正确的方法。除非他告诉我们获得这些颜色的目的是什么,然后我们可以考虑更多。