gpt4 book ai didi

colors - 在 RGB 和一个整数/浮点值之间转换

转载 作者:行者123 更新时间:2023-12-02 20:50:27 26 4
gpt4 key购买 nike

我想问一下是否可以在 RGB 和表示颜色范围的一个连续颜色值(如 float [0..1] 或 Integer [0..255])之间进行转换。

例如:我有一个像彩虹一样的连续颜色范围:

红-橙-黄-绿-蓝-靛-紫

->用0~1或0~255(或任意范围)表示

现在我想转换值,例如(0.5 = 绿色)到相等的 RGB 值 ([0,1,0]?)。传递函数(前后)是否可能?也许在 Python 中?

最佳答案

RGB 需要 3 个数字的全部原因是因为它本质上是一个 3D 空间。你会试图将 3 条连续的数字线挤成 1!你必须选择一个比例尺,像下面这样玩一玩,看看你喜欢哪种颜色混合......(用 VBA 编写的代码,但易于移植)

For i = 1 To 255   
' Scale with no red, increase and decrease blue and green respectively
Range("a" & i).Interior.Color = RGB(0, i, 255 - i)
' Use a MOD function to keep the values between 0 and 255
' note this can cause some abrupt changes in your scale
Range("b" & i).Interior.Color = RGB(128 + i Mod 255, i, 255 - i)
' You can increase and decrease different RGB values for desired result
Range("c" & i).Interior.Color = RGB((255 - i) Mod 255, (0 + i) Mod 255, i)
Next i

输出(为了在此处更好地查看,列变成行):

Colour bands

因此,要从 RGB 到一维比例(如上所示),您只需将 i 作为您的单个变量,如果需要,您可以存储一个查找或创建一个函数来执行每个操作上面的行,从 i 的单个值创建颜色。

现在从这个 1D 比例回到 3D 比例在技术上是不可能的。您丢失了所需的额外信息。但是,如果您知道创建比例的映射函数,则可以通过各自的输入简单地获取每个 RGB 值。

希望这对您有所帮助。

关于colors - 在 RGB 和一个整数/浮点值之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42365422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com