什么是颜色映射,何时需要使用?

13

在计算机图形学中,"color map"指的是一种将数字颜色值映射到实际显示颜色的方式。在某些库中,您可能会偶然遇到这个术语 - 因此,可以认为颜色映射旨在具有特定的功能和目的。

那么我何时需要颜色映射以及用途是什么呢?

此外,是否有关于此问题的资源 - 我应该搜索什么?

对于抱怨这个问题不够具体的人:

xlib和giflib中的颜色映射有何区别?


此问题似乎与编程无关,因此不适合讨论。 - xxbbcc
3
为什么?我将我的问题放在了特定的背景下。这是关于术语的,以及不同的库甚至在不同的编程语言中如何定义常用术语。因此,如果这个术语看起来有类似的意思,我不想问在xlib、giflib、jpeglib、libtiff、magick或gtk的C库中“颜色映射”定义之间存在什么差异,因为我认为它们至少打算是相同的。这就是为什么我总体上提问。我认为你的结论毫无意义。 - k t
那么你的意思是,无法假设在C或其他语言中使用的不同图形库的颜色映射可能具有相似的含义?所以这只是由各个库个别定义的变量术语?在编程语言中没有关于颜色映射的概念,即使这个术语通常被使用,但对于编程语言而言并没有普遍意义上的颜色映射?那么究竟什么是颜色映射 - 我在谷歌上找不到任何信息,但我可以在C库中找到这个术语。 - k t
你应该阅读这些库的文档或联系作者并询问他们。这不是一个编程问题,因此不适合在SO上提问。(我并不是说这是一个糟糕的问题或无用的问题,只是不适合在SO上提问。) - xxbbcc
1个回答

9
一种称为“调色板”(也经常被称为“颜色表”或“调色板”)的颜色映射数组用于将像素数据(表示为对颜色表的索引)映射到实际的颜色值。
一些图形显示器,特别是旧型号的,不能为每个像素显示任意颜色。相反,每个像素都存储为一个小数字,该数字用作颜色表中的索引。
例如,在某些模式下,VGA通常可以同时显示多达256种独特的颜色。但由于屏幕上有超过256个像素,因此您无法为每个像素设置任意RGB值。相反,您会为每个像素存储一个字节,该字节将用于查找颜色表中的实际颜色。
虽然调色板在今天已不太相关,但某些图形文件格式仍将其表示为颜色表和像素数据,这些数据由表中的索引构成,而不是直接将像素编码为某个颜色空间中的颜色,如RGB。因此,如果您编写处理这些格式的代码,您将需要了解调色板的工作原理。
如果您在嵌入式系统中工作,可能会遇到仍使用调色板的受限显示器。Xlib、Windows API和其他图形API仍具有处理具有有限调色板的系统的函数,尽管我怀疑现在很少有程序员使用它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接