dxf格式8位色索引转24位色
现在的颜色基本上都是24位
色,由RGB三个分量组成,每一个分量占8个bit,通过RGB混合得到最终的颜色。
所谓32位色是在RGB的基础上,引进了一个Alpha通道,用于描述颜色的透明。Alpha值越小,透明度越高。
8位色即256色,共可以表示256种颜色。目前存在两种定义。详见:http://en.wikipedia.org/wiki/8_bit_color
一种是直接定义出256种颜色,通过索引访问这256种颜色;另一种是同RGB分量来进行的,格式为:R R R G G G B B。
windows是使用了第一种方案来描述8位色的,我们可以使用下列数组来实现windows上的dxf格式从8位色到24位色的转换。
// 256色索引值范围:[0,255]
const static COLORREF CadColor[256] = { RGB(255,255,255), RGB(255, 0, 0), RGB(255,255, 0), RGB( 0,255, 0), RGB( 0,255,255), RGB( 0, 0,255), // 5 RGB(255, 0,255), RGB(255,255,255), RGB(128,128,128), RGB(192,192,192), RGB(255, 0, 0), // 10 RGB(255,127,127), RGB(204, 0, 0), RGB(204,102,102), RGB(153, 0, 0), RGB(153, 76, 76), // 15 RGB(127, 0, 0), RGB(127, 63, 63), RGB( 76, 0, 0), RGB( 76, 38, 38), RGB(255, 63, 0), // 20 RGB(255,159,127), RGB(204, 51, 0), RGB(204,127,102), RGB(153, 38, 0), RGB(153, 95, 76), // 25 RGB(127, 31, 0), RGB(127, 79, 63), RGB( 76, 19, 0), RGB( 76, 47, 38), RGB(255,127, 0), // 30 RGB(255,191,127), RGB(204,102, 0), RGB(204,153,102), RGB(153, 76, 0), RGB(153,114, 76), // 35 RGB(127, 63, 0), RGB(127, 95, 63), RGB( 76, 38, 0), RGB( 76, 57, 38), RGB(255,191, 0), // 40 RGB(255,223,127), RGB(204,153, 0), RGB(204,178,102), RGB(153,114, 0), RGB(153,133, 76), // 45 RGB(127, 95, 0), RGB(127,111, 63), RGB( 76, 57, 0), RGB( 76, 66, 38), RGB(255,255, 0), // 50 RGB(255,255,127), RGB(204,204, 0), RGB(204,204,102), RGB(153,153, 0), RGB(153,153, 76), // 55 RGB(127,127, 0), RGB(127,127, 63), RGB( 76, 76, 0), RGB( 76, 76, 38), RGB(191,255, 0), // 60 RGB(223,255,127), RGB(153,204, 0), RGB(178,204,102), RGB(114,153, 0), RGB(133,153, 76), // 65 RGB( 95,127, 0), RGB(111,127, 63), RGB( 57, 76, 0), RGB( 66, 76, 38), RGB(127,255, 0), // 70 RGB(191,255,127), RGB(102,204, 0), RGB(153,204,102), RGB( 76,153, 0), RGB(114,153, 76), // 75 RGB( 63,127, 0), RGB( 95,127, 63), RGB( 38, 76, 0), RGB( 57, 76, 38), RGB( 63,255, 0), // 80 RGB(159,255,127), RGB( 51,204, 0), RGB(127,204,102), RGB( 38,153, 0), RGB( 95,153, 76), // 85 RGB( 31,127, 0), RGB( 79,127, 63), RGB( 19, 76, 0), RGB( 47, 76, 38), RGB( 0,255, 0), // 90 RGB(127,255,127), RGB( 0,204, 0), RGB(102,204,102), RGB( 0,153, 0), RGB( 76,153, 76), // 95 RGB( 0,127, 0), RGB( 63,127, 63), RGB( 0, 76, 0), RGB( 38, 76, 38), RGB( 0,255, 63), // 100 RGB(127,255,129), RGB( 0,204, 51), RGB(102,204,127), RGB( 0,153, 38), RGB( 76,153, 95), // 105 RGB( 0,127, 31), RGB( 63,127, 79), RGB( 0, 76, 19), RGB( 38, 76, 47), RGB( 0,255,127), // 110 RGB(127,255,191), RGB( 0,204,102), RGB(102,204,153), RGB( 0,153, 76), RGB( 76,153,114), // 115 RGB( 0,127, 63), RGB( 63,127, 95), RGB( 0, 76, 38), RGB( 38, 76, 57), RGB( 0,255,191), // 120 RGB(127,255,223), RGB( 0,204,153), RGB(102,204,178), RGB( 0,153,114), RGB( 76,153,133), // 125 RGB( 0,127, 95), RGB( 63,127,111), RGB( 0, 76, 57), RGB( 38, 76, 66), RGB( 0,255,255), // 130 RGB(127,255,255), RGB( 0,204,204), RGB(102,204,204), RGB( 0,153,153), RGB( 76,153,153), // 135 RGB( 0,127,127), RGB( 63,127,127), RGB( 0, 76, 76), RGB( 38, 76, 76), RGB( 0,191,255), // 140 RGB(127,223,255), RGB( 0,153,204), RGB(102,178,204), RGB( 0,114,153), RGB( 76,133,153), // 145 RGB( 0, 95,127), RGB( 63,111,127), RGB( 0, 57, 76), RGB( 38, 66, 76), RGB( 0,127,255), // 150 RGB(127,191,255), RGB( 0,102,204), RGB(102,153,204), RGB( 0, 76,153), RGB( 76,114,153), // 155 RGB( 0, 63,127), RGB( 63, 95,127), RGB( 0, 38, 76), RGB( 38, 57, 76), RGB( 0, 63,255), // 160 RGB(127,159,255), RGB( 0, 51,204), RGB(102,127,204), RGB( 0, 38,153), RGB( 76, 95,153), // 165 RGB( 0, 31,127), RGB( 63, 79,127), RGB( 0, 19, 76), RGB( 38, 47, 76), RGB( 0, 0,255), // 170 RGB(127,127,255), RGB( 0, 0,204), RGB(102,102,204), RGB( 0, 0,153), RGB( 76, 76,153), // 175 RGB( 0, 0,127), RGB( 63, 63,127), RGB( 0, 0, 76), RGB( 38, 38, 76), RGB( 63, 0,255), // 180 RGB(159,127,255), RGB( 51, 0,204), RGB(127,102,204), RGB( 38, 0,153), RGB( 95, 76,153), // 185 RGB( 31, 0,127), RGB( 79, 63,127), RGB( 19, 0, 76), RGB( 47, 38, 76), RGB(127, 0,255), // 190 RGB(191,127,255), RGB(102, 0,204), RGB(153,102,204), RGB( 76, 0,153), RGB(114, 76,153), // 195 RGB( 63, 0,127), RGB( 95, 63,127), RGB( 38, 0, 76), RGB( 57, 38, 76), RGB(191, 0,255), // 200 RGB(223,127,255), RGB(153, 0,204), RGB(178,102,204), RGB(114, 0,153), RGB(133, 76,153), // 205 RGB( 95, 0,127), RGB(111, 63,127), RGB( 57, 0, 76), RGB( 66, 38, 76), RGB(255, 0,255), // 210 RGB(255,127,255), RGB(204, 0,204), RGB(204,102,204), RGB(153, 0,153), RGB(153, 76,153), // 215 RGB(127, 0,127), RGB(127, 63,127), RGB( 76, 0, 76), RGB( 76, 38, 76), RGB(255, 0,191), // 220 RGB(255,127,223), RGB(204, 0,153), RGB(204,102,178), RGB(153, 0,114), RGB(153, 76,133), // 225 RGB(127, 0, 95), RGB(127, 63,111), RGB( 76, 0, 57), RGB( 76, 38, 66), RGB(255, 0,127), // 230 RGB(255,127,191), RGB(204, 0,102), RGB(204,102,153), RGB(153, 0, 76), RGB(153, 76,114), // 235 RGB(127, 0, 63), RGB(127, 63, 95), RGB( 76, 0, 38), RGB( 76, 38, 57), RGB(255, 0, 63), // 240 RGB(255,127,159), RGB(204, 0, 51), RGB(204,102,127), RGB(153, 0, 38), RGB(153, 76, 95), // 245 RGB(127, 0, 31), RGB(127, 63, 79), RGB( 76, 0, 19), RGB( 76, 38, 47), RGB( 51, 51, 51), // 250 RGB( 91, 91, 91), RGB(132,132,132), RGB(173,173,173), RGB(214,214,214), RGB(255,255,255) // 255 };
ACI -- RGB对照表