gpt4 book ai didi

algorithm - 值作为颜色表示

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:56 24 4
gpt4 key购买 nike

将值转换为颜色是众所周知的,我理解以下两种方法(在 changing rgb color values to represent a value 中有很好的描述)

  1. 灰色阴影值
  2. Value as brightness of a base colour (例如 brightness of blue)

但是当我想使用完整的颜色范围(“所有颜色”)时,最好的算法是什么?当我使用具有 8 位 RGB 值的“灰色”时,我实际上确实有 256 种色调(白色到黑色)的表示。但如果我使用整个范围,我可以使用更多的色调。类似于 this .这也更容易识别。

基本上我需要 Javascript 中的算法,但我想所有代码(如 C#、Java、伪代码)也可以。底部的图例显示了编码,我正在为此寻找算法。

如果有一个值范围(例如 1-1000),我可以将 1 表示为白色,将 1000 表示为黑色,但我也可以将 1 表示为黄色,将 1000 表示为蓝色。但是有一个标准的算法吗?查看示例 here ,表明他们使用颜色间隔。我不想只使用灰色或改变亮度,而是使用所有颜色。

这是一个 visual demonstration (需要闪光灯)。给定颜色方案中表示的值 a,我的目标是计算颜色。

我确实有一个线性颜色范围,例如从 1-30000

-- 更新--

Here我发现这里有一个叫做 LabSpace 的东西:

Lab space is a way of representing colours where points that are close to each other are those that look similar to each other to humans.

所以我需要的是一种算法来表示该实验室空间中的线性值。

最佳答案

指定颜色的基本方法有两种。一个是预定义的颜色列表(调色板),然后您的颜色值是该列表的索引。这就是旧的 8 位颜色系统的工作方式,也是 GIF 图像仍然工作的方式。有网络安全颜色列表,例如 http://en.wikipedia.org/wiki/Web_colors ,通常适合 8 位值。通常相似的颜色是相邻的,但有时不是。调色板的优点是每个像素需要少量数据,但缺点是可以同时显示在屏幕上的不同颜色的数量有限。

另一种基本方法是指定颜色的坐标。一种方法是 RGB,每种原色都有一个单独的值。另一个是色相/饱和度/亮度。 CMYK(青色、洋红色、黄色,有时是黑色)用于打印。这就是通常所说的真彩色,当您使用“所有颜色”这样的短语时,听起来您正在寻找这样的解决方案。对于渐变,此类 HSL 可能非常适合您。例如,从颜色到灰色的渐变只会降低饱和度值。如果你想要的只是“纯”颜色,那么固定饱和度和亮度值并改变色调。几乎所有的绘图系统都需要 RGB,但是从 HSL 到 RGB 的转换是直接的。 http://en.wikipedia.org/wiki/HSL_and_HSV

如果您不能为每种颜色保留完整的 24 位(每种颜色 8 位,32 位颜色相同但添加了一个透明 channel ),您可以使用 15 或 16 位颜色。这是同一件事,但不是每种颜色 8 位,而是每种颜色 5 位(15 位)或 5-6-5(16 位,绿色得到额外的位,因为我们的眼睛对绿色阴影更敏感)。这适合一个短整数。

关于algorithm - 值作为颜色表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7182318/

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