php - 计算颜色深浅

标签 php algorithm colors

我有下一个问题。
我有一种基色,该基色有几种不同的深浅。

示例:

  • 基色:#4085c5
  • 色号:#005cb1

现在,我有了不同的颜色(比如#d60620),但没有阴影。我想从颜色中计算出与第一段中提到的颜色具有相似差异的色度。

首先,我尝试计算RGB 的差异 元素并将它们应用于第二种颜色,但结果并不像我预期的那样。
我尝试将颜色转换为 HSV,读取饱和度值并将差异应用到第二种颜色,但结果颜色仍然很奇怪。

公式类似于:(HSV(BaseColor)[S] - HSV(Shade)[S]) + HSV(SecondColor)[H]

有谁知道如何解决这个问题?我知道我做错了什么,但我不知道是什么。 :)

最佳答案

有两种方法可以使颜色变暗:

  • 从 R、G、B 中减去等量。这增加了饱和度。显然,您只能减去等于 R、G、B 值中最小值的安装量。
  • 将 R、G、B 乘以小于 1.0 的值。这使饱和度或多或少保持不变。

同样,有两种方法可以使颜色变亮:

  • 在 R,G,B 中加入等量的。这会降低饱和度。
  • 将 R、G、B 乘以大于 1.0 的值。这会增加颜色的鲜艳度,从而增加表观饱和度。

您的示例似乎同时完成了这两项操作 - 从每个值中减去 0x40 并乘以 1.33。

使用您的第二种颜色,我们可以从每种颜色中减去 06,得到 #d0000a,但这还不够暗。将它乘以 0.735 得到 #990013。

enter image description here

关于php - 计算颜色深浅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12751512/

相关文章:

php - 存储和查询发票数据和账户数据的最佳方式是什么?

algorithm - 具有有限边数的未加权无向图中两个节点之间的所有路径

ios - 将 16 位颜色范围内的值转换为 UIColor

php - MySQL 和 PHP : Sum(marks) along with where clause

php - 如何提取html注释和node包含的所有html?

javascript - 变量在 while 循环外丢失值 - Javascript

algorithm - 人类可解释的监督机器学习算法

algorithm - 色盲辅助算法

javascript - 根据百分比值在两种颜色之间进行插值

php - pg_escape_bytea 和撇号