Colors 计算机如何计算颜色代码?

Colors 计算机如何计算颜色代码?,colors,Colors,我只是想知道,计算机如何知道rgb(255,0,0)的值是红色的,或者它如何知道特定的颜色代码是针对特定的颜色的 我想说的是计算机是怎么知道的 红色意味着红色, 绿色意味着绿色, 白色意味着白色, 蓝色意味着蓝色等等 请解释一下,不要打比方。我想知道引擎罩后面发生的真实情况。你的电脑不需要“知道”任何颜色“意味着什么”,它只需要将颜色值的R、G和B分量的数值传递给你的显示器,显示器被连接起来,发出相应级别的红光、绿光和蓝光。(这有点过于简单了,因为各种颜色处理可能会先进行,但这仍然是它的要点。)

我只是想知道,计算机如何知道rgb(255,0,0)的值是红色的,或者它如何知道特定的颜色代码是针对特定的颜色的

我想说的是计算机是怎么知道的 红色意味着红色, 绿色意味着绿色, 白色意味着白色, 蓝色意味着蓝色等等


请解释一下,不要打比方。我想知道引擎罩后面发生的真实情况。

你的电脑不需要“知道”任何颜色“意味着什么”,它只需要将颜色值的R、G和B分量的数值传递给你的显示器,显示器被连接起来,发出相应级别的红光、绿光和蓝光。(这有点过于简单了,因为各种颜色处理可能会先进行,但这仍然是它的要点。)


当这些不同颜色的不同层次混合在一起时,会产生显示器可以产生的宽色域的颜色,从那里开始,决定你看到什么颜色的是你的大脑如何处理原色的混合。

计算机不知道红色的含义(也不知道字母a的含义)

计算机获取数据(255,0,0)并将其存储在内存中,告知像素X具有这样的值。真正的图形库处理像素的位置,知道坐标,也知道颜色深度,现在我们通常每个像素有32位,具有一致的图案

视频卡将读取内存,对其进行解释,并将其转换为标准化信号(例如HDMI、SRGB、每通道8位、渐进式、4:4:4颜色配置、屏幕大小AxB、数据速度等),然后将其发送到屏幕。如果屏幕可以解释这样的数据流,它会将其发送到pannel,pannel会照亮像素(通常只允许背光以特定的强度通过)。彩色滤光片应用于每个像素上,这样你(眼睛)就能得到一种特定的颜色。如果您更换了滤色器,计算机、视频卡、屏幕和面板将无法知道您看到的是不同的颜色)

所以:计算机只处理数字。库和计算机语言处理用户(或更好的程序员)对数据的接口,这样您就可以用CSS写“red”,或用HTML写#FF0000,或255,0,0。然后一个或多个库(例如,移动窗口、透明度)将处理数据,其中包含一些有关结构的信息(屏幕的系统设置)。视频卡、屏幕和面板对数据的含义知之甚少

注意:操作系统、视频卡和屏幕可能会改变颜色的含义。这通常是在颜色配置文件中完成的,以根据硬件获得更好的颜色,但也有测试ICC文件,它们只是反转颜色(或用于高对比度或色盲)。在这种情况下,计算机不知道“红色”将显示为“黑色”(例如)


您应该始终将其视为“三明治”:只有在第一次输入和最后一次输出时才知道语义(真正的意义)。对于其他人来说,计算机只是在处理数字(他们可能对语义一无所知)。对不起,这是一个不必要的类比。

这可能会有帮助,你的意思是什么?你是说计算机如何知道255,0,0表示“红色”,10,10,10表示“非常深的灰色”或什么?因为如果这是你要问的,那么这与编程关系不大,更具体地说,与编程有关。这基本上只是一个映射:键“红色映射到rgb(255,0),“绿色”映射到rgb(0,255,0)等-它是RGB值,或者可能是其他颜色空间,该值被转换为用于生成显示器图像、打印纸等的颜色空间。