Php 计算色度
我有下一个问题。Php 计算色度,php,algorithm,colors,Php,Algorithm,Colors,我有下一个问题。 我有一个基色和两个不同的色调 示例: 底色:#4085c5 阴影:#005cb1 现在,我有了一种不同的颜色(比如说#d60620),但没有深浅的颜色。从颜色,我想计算阴影,有类似的差异,在第一段中提到的颜色 首先,我尝试计算RGB元素的差异,并将其应用于第二种颜色,但结果与我预期的不同。 比我试着用将颜色转换为HSV,读取饱和度值,然后将差值应用到第二种颜色,但结果仍然很奇怪 公式是这样的:(HSV(基色)[S]-HSV(阴影)[S])+HSV(第二色)[H] 有人知道如
我有一个基色和两个不同的色调 示例:
- 底色:#4085c5
- 阴影:#005cb1
比我试着用将颜色转换为HSV,读取饱和度值,然后将差值应用到第二种颜色,但结果仍然很奇怪 公式是这样的:(HSV(基色)[S]-HSV(阴影)[S])+HSV(第二色)[H]
有人知道如何解决这个问题吗?我知道我做错了什么,但我不知道是什么。:) 前两种颜色的“H”(色调)值均为209,而“S”和“V”的值各不相同 这种常见的色调将第二种颜色定义为第一种颜色的“阴影”
要找到第三种颜色的替代色调,请使用RGB到HSV转换来找到其色调,根据需要修改其S和V值,然后再转换回RGB。有两种方法可以使颜色变暗:
- 从R、G、B中减去等量。这会增加饱和度。显然,你只能减去一个等于R,G,B值中最小值的量
- 将R,G,B乘以一个小于1.0的值。这使饱和度或多或少保持不变
- 向R、G、B添加等量。这会降低饱和度
- 将R、G、B乘以一个大于1.0的值。这会增加颜色的逼真度,从而增加明显的饱和度
请参阅类似帖子:,虽然您的解决方案是正确的,但定义有点偏离:(例如,海军蓝是蓝色的阴影)。在HSV空间中,这意味着V减小。