我知道 12 位 RGB 调色板格式,每种颜色 R、G、B 有 4 位。但是原始数据的结构如何?
1.) 每种颜色是否都有一个与之对应的字节,该字节又具有 4 个填充位和 4 个用于颜色数据的数据位
或者
2.) 它是一种打包格式,即 Byte-1= (padding bits + 4-Rbits) Byte-2 = (4-Gbits+4Bits)
包装是怎么做的?
谢谢你。
-广告
在哪里?
在内存中,它可以是任何东西——很可能它可以保存在一个 3 字符数组或结构中......
在磁盘中,由于空间非常重要,它可能会以更紧凑的格式保存:3 个字节代表两个相邻像素:[RG][BR][GB],并在写入/读取时打包/解包。
不过,这一切都取决于您的格式/平台的规格。
我知道 12 位 RGB 调色板格式,每种颜色 R、G、B 有 4 位。
你确定这是调色板格式吗?
通常,调色板格式由两个不同的部分组成:调色板本身和图像。调色板是颜色值的查找表,其格式是特定于实现的。然后图像是托盘的索引值列表。
调色板格式通常用于节省内存,或者有时用于制作霓虹灯风格的动画(如 Windows95 加载屏幕底部有一条蓝色条:图像被写入屏幕一次,然后调色板中的一些颜色被每隔几毫秒旋转一次)。
在 Amiga 上,系统非常简单:
RGB 都是 8 位数字,$FFF = 4095(+ 黑色)每种颜色都是 4 位。三乘以 4 位 = 12 位,因此 12 位颜色范围。
在 CD+G 上,每个 12 位调色板条目使用两个连续字节的 6 个 lsb 存储;没有浪费空间,因为高两位用于存储时序信息。我认为 Amiga 只是在一个 16 位字中使用了四个 nybbles 中的三个。我不确定您可能会想到哪些其他格式。