【发布时间】:2014-04-03 21:47:09
【问题描述】:
一个 RGB 颜色系统可以通过组合不同深浅的红色、绿色和蓝色来表示 256 种不同的颜色。每个阴影都可以表示为一个数字。定义一个 C 类型来表示 RGB 状态。
据我了解,这将是一个合适的 C 类型,但不确定我是否正确:
struct{
int R[256];
int G[256];
int B[256];
} color;
这是正确的还是有更合适/更有效的方法?
【问题讨论】:
-
结构中的
ints 不需要是数组。只需简单的int就足够了(或short,甚至unsigned char)。除此之外,应该没问题。 -
请注意,问题陈述说它可以表示 256 种颜色,而不是像这里发布的许多人所假设的那样每个通道 256 种颜色。
-
符合规定的解决方案可能是:
struct colour { unsigned int R: 3; unsigned int G: 3; unsigned int B: 2; };。我不知道曾经存在的任何系统实际上以这种方式具有 256 种颜色(VGA 有一个 256 色调色板,但这些颜色中的每一种都是 18 位)。
标签: c