小编Rob*_*Rob的帖子

如何将一个 8 位颜色值拆分为两个 4 位颜色值?

所以我编写了一个程序,它读取位图并使用 windows.h 打印到控制台。

Windows(在控制台中)允许我为每个字符空间设置两种颜色 - 前景色和背景色。

我仅限于这些颜色的 4 位调色板:

http://www.infotart.com/blog/wp-content/uploads/2008/06/windows_4bit_color_swatches.png

我的程序对于 16 种颜色运行良好,但在计算 256 种颜色时遇到了困难。(或者弄清楚是否有可能)

我需要获取索引颜色的 RGB 值(来自 256 种 8 位颜色,例如 224、64、0)并将其显示为 16 种可用颜色中的两种,其中一种颜色是抖动的。

前景字符将是 ASCII 抖动字符之一(我认为是 176、177、178)。

所以我认为每个背景需要有 R、G、B 值 0、128、255 等,前景可以是 0、32、64、96、128、160、192、224 或 255

因此,如果我有数字 RGB = 192,0,0,我可以将背景设置为 RGB = 128,0,0,并将前景设置为 RGB = 255,0,0,ASCII 字符为 176(25% 抖动)

如果我有一个单独的抖动字符可用于红、绿和蓝色,这似乎会非常简单,但遗憾的是我没有。

我知道控制台是一个糟糕的选择,但我必须尝试在没有 Windows GDI 帮助的情况下执行此操作。

我完全被困在试图找出这个算法的过程中,甚至无法看出我的逻辑是否有意义。

有人能解释一下吗?感谢所有帮助,我碰壁了。

c windows algorithm programming-languages colors

5
推荐指数
1
解决办法
1098
查看次数

标签 统计

algorithm ×1

c ×1

colors ×1

programming-languages ×1

windows ×1