This page displays the colors of the tiny BGR233 color space. This is a true-color color model, i.e. each pixel value carries its complete color value, as opposed to models based on color look-up tables.
What makes BGR233 useful is that it provides true-color color semantics in a very small amount of storage space or bandwidth; each pixel is just a single 8-bit byte. The color channels are allocated out of these 8 bits like this:
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Name | b1 | b0 | g2 | g1 | g0 | r2 | r1 | r0 |
So, the eight bits of each pixel value gives 2 bits (b1b0) of blue, and three bits of green (g2g1g0) and red (r2r1r0), respectively. The bit-level endianness is of course not very interesting, the bits could be reordered into a "RGB332" color space for instance. This is of course the "secret" behind the name BGR233. Notice that this means there are only four different levels of blue, while there are eight levels of green and red available. This discrepancy makes it hard to express gradients using this color model.
The full color space, all 256 possible colors, is shown below. The text in each box gives the hexadecimal value for that particular color.
| 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e | 1f |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2a | 2b | 2c | 2d | 2e | 2f |
| 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 3a | 3b | 3c | 3d | 3e | 3f |
| 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4a | 4b | 4c | 4d | 4e | 4f |
| 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 5a | 5b | 5c | 5d | 5e | 5f |
| 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 6a | 6b | 6c | 6d | 6e | 6f |
| 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 7a | 7b | 7c | 7d | 7e | 7f |
| 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 8a | 8b | 8c | 8d | 8e | 8f |
| 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 9a | 9b | 9c | 9d | 9e | 9f |
| a0 | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | aa | ab | ac | ad | ae | af |
| b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 | b8 | b9 | ba | bb | bc | bd | be | bf |
| c0 | c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 | c9 | ca | cb | cc | cd | ce | cf |
| d0 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | da | db | dc | dd | de | df |
| e0 | e1 | e2 | e3 | e4 | e5 | e6 | e7 | e8 | e9 | ea | eb | ec | ed | ee | ef |
| f0 | f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | fa | fb | fc | fd | fe | ff |
For display purposes, the background color of each box shows the BGR233 color expanded into the more typical 24-bit color space RGB888. This expansion is done simply by replicating the bits, like so:
| RGB888 Bit | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BGR233 Bit | r2 | r1 | r0 | r2 | r1 | r0 | r2 | r1 | g2 | g1 | g0 | g2 | g1 | g0 | g2 | g1 | b1 | b0 | b1 | b0 | b1 | b0 | b1 | b0 |
Each component of the BGR233 color is simply repeated into the 8-bit space of the corresponding RGB888 component, by first left-adjusting it and then repeating the bit sequence down towards the least significant bits.
Here are the "pure" red, green and blue gradients expressible in BGR233. Note that since the number of bits allocated to blue is just two, there are only four shades of pure blue available. Black has been omitted from all the gradients, since its simply 0x00.
| Red | 01 | 02 | 03 | 04 | 05 | 06 | 07 |
|---|---|---|---|---|---|---|---|
| Green | 08 | 10 | 18 | 20 | 28 | 30 | 38 |
| Blue | 40 | 80 | c0 |
The primary use of the BGR233 color space is for the remote framebuffer protocol used in VNC.