Colors 如何计算十六进制色调值?

Colors 如何计算十六进制色调值?,colors,rgb,Colors,Rgb,我有多个原始颜色值 我使用的软件只允许我向这些值添加十六进制色调值(例如色调:0x00ff00或色调:0x000100)以更改其颜色 编辑:我无法直接键入所需的最终颜色。我只能控制色调(十六进制值)、饱和度(值介于-100和100之间)、亮度(值介于-100和100之间)和伽马(值介于0.01和10.0之间)。 如何计算每个原始颜色所需的色调值,以便在每次变换后获得完全相同的最终颜色 谢谢 如果我不清楚,让我重新表述: 我有4种颜色以FFA500(橙色)、008000(绿色)、800080(紫色

我有多个原始颜色值

我使用的软件只允许我向这些值添加十六进制色调值(例如
色调:0x00ff00
色调:0x000100
)以更改其颜色

编辑:我无法直接键入所需的最终颜色。我只能控制色调(十六进制值)、饱和度(值介于-100和100之间)、亮度(值介于-100和100之间)和伽马(值介于0.01和10.0之间)。

如何计算每个原始颜色所需的色调值,以便在每次变换后获得完全相同的最终颜色

谢谢

如果我不清楚,让我重新表述:


我有4种颜色以FFA500(橙色)、008000(绿色)、800080(紫色)和FFC0CB(粉色)开始。我如何通过减法计算它们需要进行哪些转换才能成为深蓝(#00bff)?

?您走在了正确的道路上。不要用十六进制来思考颜色。每个值都是0..1。要转换为十六进制,只需乘以255即可。RGB和HSV都是颜色空间。假设我们可以使用hsv(rgb)和rgb(hsv)功能在它们之间自由移动。所以你的问题是hsv(原始)+(0,x,0)=hsv(最终)。求x!如果rgb->hsv是线性的,但不是线性的,那么这就有点容易了。再想想如果原始值是黑色,最终值是白色会发生什么?@starmole所以,如果我理解正确的话,我只需将值转换为HSV,然后分别减去“H”、“S”和“V”值,然后将结果转换回十六进制?这仅仅是一个减法吗?还是除法?我以为你只能改变颜色?不,它并不简单,因为它不是线性的。再想一想,当从全黑变为全白时会发生什么。如果你加上更多具体的例子可能会有所帮助——听起来还是有点像解决一个“足够好”的实际问题。通过减法,你就走上了正确的道路。不要用十六进制来思考颜色。每个值都是0..1。要转换为十六进制,只需乘以255即可。RGB和HSV都是颜色空间。假设我们可以使用hsv(rgb)和rgb(hsv)功能在它们之间自由移动。所以你的问题是hsv(原始)+(0,x,0)=hsv(最终)。求x!如果rgb->hsv是线性的,但不是线性的,那么这就有点容易了。再想想如果原始值是黑色,最终值是白色会发生什么?@starmole所以,如果我理解正确的话,我只需将值转换为HSV,然后分别减去“H”、“S”和“V”值,然后将结果转换回十六进制?这仅仅是一个减法吗?还是除法?我以为你只能改变颜色?不,它并不简单,因为它不是线性的。再想一想,当从全黑变为全白时会发生什么。如果你添加更多具体的例子,这可能会有所帮助——听起来仍然有点像解决一个“足够好”的实际问题。