找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1077|回复: 5

[原创]:ARX子函数:从cad颜色索引表到RGB颜色的转换!

[复制链接]
发表于 2006-5-10 00:43:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
相当辛苦的做出来。。。。。
原始数据来源于:
1 255 0 0
2 255 255 0
3 0 255 0
4 0 255 255
5 0 0 255
6 255 0 255
7 255 255 255
8 128 128 128
9 192 192 192
10 255 0 0
11 255 127 127
12 204 0 0
13 204 102 102
14 153 0 0
15 153 76 76
16 127 0 0
17 127 63 63
18 76 0 0
19 76 38 38
20 255 63 0
21 255 159 127
22 204 51 0
23 204 127 102
24 153 38 0
25 153 95 76
26 127 31 0
27 127 79 63
28 76 19 0
29 76 47 38
30 255 127 0
31 255 191 127
32 204 102 0
33 204 153 102
34 153 76 0
35 153 114 76
36 127 63 0
37 127 95 63
38 76 38 0
39 76 57 38
40 255 191 0
41 255 223 127
42 204 153 0
43 204 178 102
44 153 114 0
45 153 133 76
46 127 95 0
47 127 111 63
48 76 57 0
49 76 66 38
50 255 255 0
51 255 255 127
52 204 204 0
53 204 204 102
54 153 153 0
55 153 153 76
56 127 127 0
57 127 127 63
58 76 76 0
59 76 76 38
60 191 255 0
61 223 255 127
62 153 204 0
63 178 204 102
64 114 153 0
65 133 153 76
66 95 127 0
67 111 127 63
68 57 76 0
69 66 76 38
70 127 255 0
71 191 255 127
72 102 204 0
73 153 204 102
74 76 153 0
75 114 153 76
76 63 127 0
77 95 127 63
78 38 76 0
79 57 76 38
80 63 255 0
81 159 255 127
82 51 204 0
83 127 204 102
84 38 153 0
85 95 153 76
86 31 127 0
87 79 127 63
88 19 76 0
89 47 76 38
90 0 255 0
91 127 255 127
92 0 204 0
93 102 204 102
94 0 153 0
95 76 153 76
96 0 127 0
97 63 127 63
98 0 76 0
99 38 76 38
100 0 255 63
101 127 255 159
102 0 204 51
103 102 204 127
104 0 153 38
105 76 153 95
106 0 127 31
107 63 127 79
108 0 76 19
109 38 76 47
110 0 255 127
111 127 255 191
112 0 204 102
113 102 204 153
114 0 153 76
115 76 153 114
116 0 127 63
117 63 127 95
118 0 76 38
119 38 76 57
120 0 255 191
121 127 255 223
122 0 204 153
123 102 204 178
124 0 153 114
125 76 153 133
126 0 127 95
127 63 127 111
128 0 76 57
129 38 76 66
130 0 255 255
131 127 255 255
132 0 204 204
133 102 204 204
134 0 153 153
135 76 153 153
136 0 127 127
137 63 127 127
138 0 76 76
139 38 76 76
140 0 191 255
141 127 223 255
142 0 153 204
143 102 178 204
144 0 114 153
145 76 133 153
146 0 95 127
147 63 111 127
148 0 57 76
149 38 66 76
150 0 127 255
151 127 191 255
152 0 102 204
153 102 153 204
154 0 76 153
155 76 114 153
156 0 63 127
157 63 95 127
158 0 38 76
159 38 57 76
160 0 63 255
161 127 159 255
162 0 51 204
163 102 127 204
164 0 38 153
165 76 95 153
166 0 31 127
167 63 79 127
168 0 19 76
169 38 47 76
170 0 0 255
171 127 127 255
172 0 0 204
173 102 102 204
174 0 0 153
175 76 76 153
176 0 0 127
177 63 63 127
178 0 0 76
179 38 38 76
180 63 0 255
181 159 127 255
182 51 0 204
183 127 102 204
184 38 0 153
185 95 76 153
186 31 0 127
187 79 63 127
188 19 0 76
189 47 38 76
190 127 0 255
191 191 127 255
192 102 0 204
193 153 102 204
194 76 0 153
195 114 76 153
196 63 0 127
197 95 63 127
198 38 0 76
199 57 38 76
200 191 0 255
201 223 127 255
202 153 0 204
203 178 102 204
204 114 0 153
205 133 76 153
206 95 0 127
207 111 63 127
208 57 0 76
209 66 38 76
210 255 0 255
211 255 127 255
212 204 0 204
213 204 102 204
214 153 0 153
215 153 76 153
216 127 0 127
217 127 63 127
218 76 0 76
219 76 38 76
220 255 0 191
221 255 127 223
222 204 0 153
223 204 102 178
224 153 0 114
225 153 76 133
226 127 0 95
227 127 63 111
228 76 0 57
229 76 38 66
230 255 0 127
231 255 127 191
232 204 0 102
233 204 102 153
234 153 0 76
235 153 76 114
236 127 0 63
237 127 63 95
238 76 0 38
239 76 38 57
240 255 0 63
241 255 127 159
242 204 0 51
243 204 102 127
244 153 0 38
245 153 76 95
246 127 0 31
247 127 63 79
248 76 0 19
249 76 38 47
250 51 51 51
251 91 91 91
252 132 132 132
253 173 173 173
254 214 214 214
255 255 255 255

我没有好办法,所以,
我改造成枚举法实现转换:
int IndexToRGB(int colorr,int r,int g,int b)
{
if(colorr>255||colorr<0)
return 0;
switch(colorr)
{
case 1:r=255;g=0;b=0;break;
case 2:r=255;g=255;b=0;break;
case 3:r=0;g=255;b=0;break;
case 4:r=0;g=255;b=255;break;
case 5:r=0;g=0;b=255;break;
case 6:r=255;g=0;b=255;break;
case 7:r=255;g=255;b=255;break;
case 8:r=128;g=128;b=128;break;
case 9:r=192;g=192;b=192;break;
case 10:r=255;g=0;b=0;break;
case 11:r=255;g=127;b=127;break;
case 12:r=204;g=0;b=0;break;
case 13:r=204;g=102;b=102;break;
case 14:r=153;g=0;b=0;break;
case 15:r=153;g=76;b=76;break;
case 16:r=127;g=0;b=0;break;
case 17:r=127;g=63;b=63;break;
case 18:r=76;g=0;b=0;break;
case 19:r=76;g=38;b=38;break;
case 20:r=255;g=63;b=0;break;
case 21:r=255;g=159;b=127;break;
case 22:r=204;g=51;b=0;break;
case 23:r=204;g=127;b=102;break;
case 24:r=153;g=38;b=0;break;
case 25:r=153;g=95;b=76;break;
case 26:r=127;g=31;b=0;break;
case 27:r=127;g=79;b=63;break;
case 28:r=76;g=19;b=0;break;
case 29:r=76;g=47;b=38;break;
case 30:r=255;g=127;b=0;break;
case 31:r=255;g=191;b=127;break;
case 32:r=204;g=102;b=0;break;
case 33:r=204;g=153;b=102;break;
case 34:r=153;g=76;b=0;break;
case 35:r=153;g=114;b=76;break;
case 36:r=127;g=63;b=0;break;
case 37:r=127;g=95;b=63;break;
case 38:r=76;g=38;b=0;break;
case 39:r=76;g=57;b=38;break;
case 40:r=255;g=191;b=0;break;
case 41:r=255;g=223;b=127;break;
case 42:r=204;g=153;b=0;break;
case 43:r=204;g=178;b=102;break;
case 44:r=153;g=114;b=0;break;
case 45:r=153;g=133;b=76;break;
case 46:r=127;g=95;b=0;break;
case 47:r=127;g=111;b=63;break;
case 48:r=76;g=57;b=0;break;
case 49:r=76;g=66;b=38;break;
case 50:r=255;g=255;b=0;break;
case 51:r=255;g=255;b=127;break;
case 52:r=204;g=204;b=0;break;
case 53:r=204;g=204;b=102;break;
case 54:r=153;g=153;b=0;break;
case 55:r=153;g=153;b=76;break;
case 56:r=127;g=127;b=0;break;
case 57:r=127;g=127;b=63;break;
case 58:r=76;g=76;b=0;break;
case 59:r=76;g=76;b=38;break;
case 60:r=191;g=255;b=0;break;
case 61:r=223;g=255;b=127;break;
case 62:r=153;g=204;b=0;break;
case 63:r=178;g=204;b=102;break;
case 64:r=114;g=153;b=0;break;
case 65:r=133;g=153;b=76;break;
case 66:r=95;g=127;b=0;break;
case 67:r=111;g=127;b=63;break;
case 68:r=57;g=76;b=0;break;
case 69:r=66;g=76;b=38;break;
case 70:r=127;g=255;b=0;break;
case 71:r=191;g=255;b=127;break;
case 72:r=102;g=204;b=0;break;
case 73:r=153;g=204;b=102;break;
case 74:r=76;g=153;b=0;break;
case 75:r=114;g=153;b=76;break;
case 76:r=63;g=127;b=0;break;
case 77:r=95;g=127;b=63;break;
case 78:r=38;g=76;b=0;break;
case 79:r=57;g=76;b=38;break;
case 80:r=63;g=255;b=0;break;
case 81:r=159;g=255;b=127;break;
case 82:r=51;g=204;b=0;break;
case 83:r=127;g=204;b=102;break;
case 84:r=38;g=153;b=0;break;
case 85:r=95;g=153;b=76;break;
case 86:r=31;g=127;b=0;break;
case 87:r=79;g=127;b=63;break;
case 88:r=19;g=76;b=0;break;
case 89:r=47;g=76;b=38;break;
case 90:r=0;g=255;b=0;break;
case 91:r=127;g=255;b=127;break;
case 92:r=0;g=204;b=0;break;
case 93:r=102;g=204;b=102;break;
case 94:r=0;g=153;b=0;break;
case 95:r=76;g=153;b=76;break;
case 96:r=0;g=127;b=0;break;
case 97:r=63;g=127;b=63;break;
case 98:r=0;g=76;b=0;break;
case 99:r=38;g=76;b=38;break;
case 100:r=0;g=255;b=63;break;
case 101:r=127;g=255;b=159;break;
case 102:r=0;g=204;b=51;break;
case 103:r=102;g=204;b=127;break;
case 104:r=0;g=153;b=38;break;
case 105:r=76;g=153;b=95;break;
case 106:r=0;g=127;b=31;break;
case 107:r=63;g=127;b=79;break;
case 108:r=0;g=76;b=19;break;
case 109:r=38;g=76;b=47;break;
case 110:r=0;g=255;b=127;break;
case 111:r=127;g=255;b=191;break;
case 112:r=0;g=204;b=102;break;
case 113:r=102;g=204;b=153;break;
case 114:r=0;g=153;b=76;break;
case 115:r=76;g=153;b=114;break;
case 116:r=0;g=127;b=63;break;
case 117:r=63;g=127;b=95;break;
case 118:r=0;g=76;b=38;break;
case 119:r=38;g=76;b=57;break;
case 120:r=0;g=255;b=191;break;
case 121:r=127;g=255;b=223;break;
case 122:r=0;g=204;b=153;break;
case 123:r=102;g=204;b=178;break;
case 124:r=0;g=153;b=114;break;
case 125:r=76;g=153;b=133;break;
case 126:r=0;g=127;b=95;break;
case 127:r=63;g=127;b=111;break;
case 128:r=0;g=76;b=57;break;
case 129:r=38;g=76;b=66;break;
case 130:r=0;g=255;b=255;break;
case 131:r=127;g=255;b=255;break;
case 132:r=0;g=204;b=204;break;
case 133:r=102;g=204;b=204;break;
case 134:r=0;g=153;b=153;break;
case 135:r=76;g=153;b=153;break;
case 136:r=0;g=127;b=127;break;
case 137:r=63;g=127;b=127;break;
case 138:r=0;g=76;b=76;break;
case 139:r=38;g=76;b=76;break;
case 140:r=0;g=191;b=255;break;
case 141:r=127;g=223;b=255;break;
case 142:r=0;g=153;b=204;break;
case 143:r=102;g=178;b=204;break;
case 144:r=0;g=114;b=153;break;
case 145:r=76;g=133;b=153;break;
case 146:r=0;g=95;b=127;break;
case 147:r=63;g=111;b=127;break;
case 148:r=0;g=57;b=76;break;
case 149:r=38;g=66;b=76;break;
case 150:r=0;g=127;b=255;break;
case 151:r=127;g=191;b=255;break;
case 152:r=0;g=102;b=204;break;
case 153:r=102;g=153;b=204;break;
case 154:r=0;g=76;b=153;break;
case 155:r=76;g=114;b=153;break;
case 156:r=0;g=63;b=127;break;
case 157:r=63;g=95;b=127;break;
case 158:r=0;g=38;b=76;break;
case 159:r=38;g=57;b=76;break;
case 160:r=0;g=63;b=255;break;
case 161:r=127;g=159;b=255;break;
case 162:r=0;g=51;b=204;break;
case 163:r=102;g=127;b=204;break;
case 164:r=0;g=38;b=153;break;
case 165:r=76;g=95;b=153;break;
case 166:r=0;g=31;b=127;break;
case 167:r=63;g=79;b=127;break;
case 168:r=0;g=19;b=76;break;
case 169:r=38;g=47;b=76;break;
case 170:r=0;g=0;b=255;break;
case 171:r=127;g=127;b=255;break;
case 172:r=0;g=0;b=204;break;
case 173:r=102;g=102;b=204;break;
case 174:r=0;g=0;b=153;break;
case 175:r=76;g=76;b=153;break;
case 176:r=0;g=0;b=127;break;
case 177:r=63;g=63;b=127;break;
case 178:r=0;g=0;b=76;break;
case 179:r=38;g=38;b=76;break;
case 180:r=63;g=0;b=255;break;
case 181:r=159;g=127;b=255;break;
case 182:r=51;g=0;b=204;break;
case 183:r=127;g=102;b=204;break;
case 184:r=38;g=0;b=153;break;
case 185:r=95;g=76;b=153;break;
case 186:r=31;g=0;b=127;break;
case 187:r=79;g=63;b=127;break;
case 188:r=19;g=0;b=76;break;
case 189:r=47;g=38;b=76;break;
case 190:r=127;g=0;b=255;break;
case 191:r=191;g=127;b=255;break;
case 192:r=102;g=0;b=204;break;
case 193:r=153;g=102;b=204;break;
case 194:r=76;g=0;b=153;break;
case 195:r=114;g=76;b=153;break;
case 196:r=63;g=0;b=127;break;
case 197:r=95;g=63;b=127;break;
case 198:r=38;g=0;b=76;break;
case 199:r=57;g=38;b=76;break;
case 200:r=191;g=0;b=255;break;
case 201:r=223;g=127;b=255;break;
case 202:r=153;g=0;b=204;break;
case 203:r=178;g=102;b=204;break;
case 204:r=114;g=0;b=153;break;
case 205:r=133;g=76;b=153;break;
case 206:r=95;g=0;b=127;break;
case 207:r=111;g=63;b=127;break;
case 208:r=57;g=0;b=76;break;
case 209:r=66;g=38;b=76;break;
case 210:r=255;g=0;b=255;break;
case 211:r=255;g=127;b=255;break;
case 212:r=204;g=0;b=204;break;
case 213:r=204;g=102;b=204;break;
case 214:r=153;g=0;b=153;break;
case 215:r=153;g=76;b=153;break;
case 216:r=127;g=0;b=127;break;
case 217:r=127;g=63;b=127;break;
case 218:r=76;g=0;b=76;break;
case 219:r=76;g=38;b=76;break;
case 220:r=255;g=0;b=191;break;
case 221:r=255;g=127;b=223;break;
case 222:r=204;g=0;b=153;break;
case 223:r=204;g=102;b=178;break;
case 224:r=153;g=0;b=114;break;
case 225:r=153;g=76;b=133;break;
case 226:r=127;g=0;b=95;break;
case 227:r=127;g=63;b=111;break;
case 228:r=76;g=0;b=57;break;
case 229:r=76;g=38;b=66;break;
case 230:r=255;g=0;b=127;break;
case 231:r=255;g=127;b=191;break;
case 232:r=204;g=0;b=102;break;
case 233:r=204;g=102;b=153;break;
case 234:r=153;g=0;b=76;break;
case 235:r=153;g=76;b=114;break;
case 236:r=127;g=0;b=63;break;
case 237:r=127;g=63;b=95;break;
case 238:r=76;g=0;b=38;break;
case 239:r=76;g=38;b=57;break;
case 240:r=255;g=0;b=63;break;
case 241:r=255;g=127;b=159;break;
case 242:r=204;g=0;b=51;break;
case 243:r=204;g=102;b=127;break;
case 244:r=153;g=0;b=38;break;
case 245:r=153;g=76;b=95;break;
case 246:r=127;g=0;b=31;break;
case 247:r=127;g=63;b=79;break;
case 248:r=76;g=0;b=19;break;
case 249:r=76;g=38;b=47;break;
case 250:r=51;g=51;b=51;break;
case 251:r=91;g=91;b=91;break;
case 252:r=132;g=132;b=132;break;
case 253:r=173;g=173;b=173;break;
case 254:r=214;g=214;b=214;break;
case 255:r=255;g=255;b=255;break;
}
return 1;
}

费了很多精力。。 现在传过来,方便后来人使用吧

如果有更好好办法,也请通知我哟 呵呵
qq 434683196

————————————————————
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-5-10 08:02:21 | 显示全部楼层
这样做真是太辛苦了!谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-10 10:26:23 | 显示全部楼层
辛苦了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-10 10:41:10 | 显示全部楼层
哈哈!试试这个rgb = acdbGetRGB(nColor);

#define GetRValue(rgb)      ((BYTE)(rgb))
#define GetGValue(rgb)      ((BYTE)(((WORD)(rgb)) >> 8))
#define GetBValue(rgb)      ((BYTE)((rgb)>>16))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-10 12:27:19 | 显示全部楼层
用一个2维数组,就不会这么复杂了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-11 09:27:43 | 显示全部楼层
这样的确是太麻烦了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 12:02 , Processed in 0.264281 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表