C 图像处理 颜色相关宏定义

      很多年前整理的,像素处理的宏定义,包括r8g8b8到r5g6b5之间的相互转化,浮点数像素与整数值之间的相互转化,像素值的插值、取反等处理。具体没什么好说的,宏定义的代码还是很容易看的。这套东西对搞图像处理的来说非常有意义。

  1 /****************************************************************
  2 
  3   File name   :  WhyColorDefines.h
  4   Author      :  叶飞影
  5   Version     :  2.0
  6   Create Date :  2010/08/05   
  7   Description :  颜色相关宏定义
  8 
  9 *****************************************************************/
 10 
 11 #ifndef __WhyColorDefines_H__
 12 #define __WhyColorDefines_H__
 13 
 14 // INCLUDES -----------------------------------------------------------------------------
 15 
 16 #include "WhyDefines.h"
 17 
 18 // --------------------------------------------------------------------------------------
 19 
 20 enum YePixelType
 21 {
 22     YE_PT_INVALID               = 0,
 23     YE_PT_GRAY_8                = 1,
 24     YE_PT_A8R8G8B8              = 2,
 25     YE_PT_R8G8B8                = 3,
 26     YE_PT_A1R5G5B5              = 4,
 27     YE_PT_R5G6B5                = 5,
 28     YE_PT_A4R4G4B4              = 6,
 29 };
 30 
 31 // --------------------------------------------------------------------------------------
 32 
 33 #define YD_INT_TO_BYTE(x)       ( (x) < 0 ? 0 : (((x) > 255) ? 255 : (x)) )
 34 #define YD_REAL_TO_BYTE(x)      ( (x) < 0 ? 0 : (((x) > 1.0f) ? 255 : (Ybyte)((x) * 255)) )
 35 #define YD_BYTE_TO_REAL(x)      ( (x) * 0.00392156862745f);           // x / 255
 36 
 37 // --------------------------------------------------------------------------------------
 38 
 39 /*****A8R8G8B8*****/
 40 
 41 // 通过R,G,B生成一整数表示颜色
 42 #define YD_RGB(r,g,b)                                   \
 43 ( (Ycolor) ( (Ybyte)(b) |                               \
 44              ( (Ycolor(Ybyte(g))) << 8 ) |              \
 45              ( (Ycolor(Ybyte(r))) << 16 ) |             \
 46              0xff000000 )                               \
 47 )
 48 
 49 // 通过R,G,B,A生成一整数表示颜色
 50 #define YD_ARGB(a,r,g,b)                                \
 51 ( (Ycolor) ( (Ybyte)(b) |                               \
 52              ( (Ycolor(Ybyte(g))) << 8 ) |              \
 53              ( (Ycolor(Ybyte(r))) << 16 ) |             \
 54              ( (Ycolor(Ybyte(a))) << 24 ) )             \
 55 )
 56 
 57 // 交换R分量与B分量
 58 #define YD_SWITCH_R_B(color)                            \
 59 {                                                       \
 60     Ycolor a = YD_GET_A(color);                         \
 61     Ycolor r = YD_GET_R(color);                         \
 62     Ycolor g = YD_GET_G(color);                         \
 63     Ycolor b = YD_GET_B(color);                         \
 64     color = YD_ARGB(a,b,g,r);                           \
 65 }
 66 
 67 // 修改A分量
 68 #define YD_COLOR_ALPHA(color, alpha)                    \
 69 {                                                       \
 70     Yuint a = YD_GET_A(color);                          \
 71     a = (Yuint)(a*alpha);                               \
 72     color &= 0x00ffffff;                                \
 73     color |= (a << 24);                                 \
 74 }
 75 
 76 #define YD_GET_A(color)         ( ((color) & 0xff000000) >> 24L )
 77 #define YD_GET_R(color)         ( ((color) & 0x00ff0000) >> 16L )
 78 #define YD_GET_G(color)         ( ((color) & 0x0000ff00) >> 8L )
 79 #define YD_GET_B(color)         ( ((color) & 0x000000ff) )
 80 
 81 #define YD_GET_ARGB(color, a, r, g, b)                  \
 82 {                                                       \
 83     a = YD_GET_A(color);                                \
 84     r = YD_GET_R(color);                                \
 85     g = YD_GET_G(color);                                \
 86     b = YD_GET_B(color);                                \
 87 }
 88 
 89 // 颜色各分量的平均值
 90 #define YD_ARGB_AVERAGE(color1, color2, colorDest)      \
 91 {                                                       \
 92     Ycolor a1, r1, g1, b1;                              \
 93     Ycolor a2, r2, g2, b2;                              \
 94     Ycolor ad, rd, gd, bd;                              \
 95     YD_GET_ARGB(color1, a1, r1, g1, b1);                \
 96     YD_GET_ARGB(color2, a2, r2, g2, b2);                \
 97     ad = (a1 + a2) / 2;                                 \
 98     rd = (r1 + r2) / 2;                                 \
 99     gd = (g1 + g2) / 2;                                 \
100     bd = (b1 + b2) / 2;                                 \
101     colorDest = YD_ARGB(ad, rd, gd, bd);                \
102 }
103 
104 // 颜色各分量的线性插值
105 #define YD_ARGB_LERP(color1, color2, colorDest, radio)  \
106 {                                                       \
107     Ycolor a1, r1, g1, b1;                              \
108     Ycolor a2, r2, g2, b2;                              \
109     Ycolor ad, rd, gd, bd;                              \
110     YD_GET_ARGB(color1, a1, r1, g1, b1);                \
111     YD_GET_ARGB(color2, a2, r2, g2, b2);                \
112     ad = (Ycolor)YD_LERP(a1, a2, radio);                \
113     rd = (Ycolor)YD_LERP(r1, r2, radio);                \
114     gd = (Ycolor)YD_LERP(g1, g2, radio);                \
115     bd = (Ycolor)YD_LERP(b1, b2, radio);                \
116     colorDest = YD_ARGB(ad, rd, gd, bd);                \
117 }
118 
119 #define YD_GET_RGB(color, r, g, b)                      \
120 {                                                       \
121     r = YD_GET_R(color);                                \
122     g = YD_GET_G(color);                                \
123     b = YD_GET_B(color);                                \
124 }
125 
126 #define YD_RGB_AVERAGE(color1, color2, colorDest)       \
127 {                                                       \
128     Ycolor r1, g1, b1;                                  \
129     Ycolor r2, g2, b2;                                  \
130     Ycolor rd, gd, bd;                                  \
131     YD_GET_RGB(color1, r1, g1, b1);                     \
132     YD_GET_RGB(color2, r2, g2, b2);                     \
133     rd = (r1 + r2) / 2;                                 \
134     gd = (g1 + g2) / 2;                                 \
135     bd = (b1 + b2) / 2;                                 \
136     colorDest = YD_RGB(rd, gd, bd);                     \
137 }
138 
139 // 颜色各分量的线性插值
140 #define YD_RGB_LERP(color1, color2, colorDest, radio)   \
141 {                                                       \
142     Yuint32 r1, g1, b1;                                 \
143     Yuint32 r2, g2, b2;                                 \
144     Yuint32 rd, gd, bd;                                 \
145     YD_GET_RGB(color1, r1, g1, b1);                     \
146     YD_GET_RGB(color2, r2, g2, b2);                     \
147     rd = (Yuint32)YD_LERP(r1, r2, radio);               \
148     gd = (Yuint32)YD_LERP(g1, g2, radio);               \
149     bd = (Yuint32)YD_LERP(b1, b2, radio);               \
150     colorDest = YD_RGB(ad, rd, gd, bd);                 \
151 }
152 
153 // 颜色缩放
154 #define YD_COLOR_SCALE(colorDest, color, scale)         \
155 {                                                       \
156     Yuint32 a, r, g, b;                                 \
157     Yuint32 ad, rd, gd, bd;                             \
158     YD_GET_ARGB(color, a, r, g, b);                     \
159     rd = (Yuint32)(r*scale);                            \
160     gd = (Yuint32)(g*scale);                            \
161     bd = (Yuint32)(b*scale);                            \
162     ad = (Yuint32)(a*scale);                            \
163     colorDest = YD_ARGB(ad, rd, gd, bd);                \
164 }
165 
166 #define YD_COLOR_RGB_SCALE(colorDest, color, scale)     \
167 {                                                       \
168     Yuint32 a, r, g, b;                                 \
169     Yuint32 rd, gd, bd;                                 \
170     YD_GET_ARGB(color, a, r, g, b);                     \
171     rd = (Yuint32)(r*scale);                            \
172     gd = (Yuint32)(g*scale);                            \
173     bd = (Yuint32)(b*scale);                            \
174     colorDest = YD_ARGB(a, rd, gd, bd);                 \
175 }
176 
177 #define YD_COLOR_ALPHA_SCALE(colorDest, color, scale)   \
178 {                                                       \
179     Yuint32 a, r, g, b;                                 \
180     Yuint32 ad;                                         \
181     YD_GET_ARGB(color, a, r, g, b);                     \
182     ad = (Yuint32)(a*scale);                            \
183     colorDest = YD_ARGB(ad, r, g, b);                   \
184 }
185 
186 // 颜色置反
187 #define YD_COLOR_INVERSE(colorDest, color)              \
188 {                                                       \
189     Yuint32 a, r, g, b;                                 \
190     Yuint32 ad, rd, gd, bd;                             \
191     YD_GET_ARGB(color, a, r, g, b);                     \
192     rd = 255 - r;                                       \
193     gd = 255 - g;                                       \
194     bd = 255 - b;                                       \
195     ad = 255 - a;                                       \
196     colorDest = YD_ARGB(ad, rd, gd, bd);                \
197 }
198 
199 #define YD_COLOR_RGB_INVERSE(colorDest, color)          \
200 {                                                       \
201     Yuint32 a, r, g, b;                                 \
202     Yuint32 rd, gd, bd;                                 \
203     YD_GET_ARGB(color, a, r, g, b);                     \
204     rd = 255 - r;                                       \
205     gd = 255 - g;                                       \
206     bd = 255 - b;                                       \
207     colorDest = YD_ARGB(a, rd, gd, bd);                 \
208 }
209 
210 #define YD_COLOR_ALPHA_INVERSE(colorDest, color)        \
211 {                                                       \
212     Yuint32 a, r, g, b;                                 \
213     Yuint32 ad;                                         \
214     YD_GET_ARGB(color, a, r, g, b);                     \
215     ad = 255 - a;                                       \
216     colorDest = YD_ARGB(ad, r, g, b);                   \
217 }
218 
219 // --------------------------------------------------------------------------------------
220 
221 /*****R5G6B5*****/
222 
223 #define YD_R5G6B5(r,g,b)                                \
224 ( (YWord) ( ( (Ybyte(b) >> 3L) ) |                      \
225             ( (YWord(Ybyte(g)) >> 2L) << 5L ) |         \
226             ( (YWord(Ybyte(r)) >> 3L) << 11L )          \
227 )
228 
229 #define YD_GET_565_R(color)     ( ((color) & 0x0000f800) >> 8L )
230 #define YD_GET_565_G(color)     ( ((color) & 0x000007E0) >> 3L )
231 #define YD_GET_565_B(color)     ( ((color) & 0x0000001f) << 3L )
232 
233 #define YD_GET_565_RGB(color, r, g, b)                  \
234 {                                                       \
235     r = YD_GET_565_R(color);                            \
236     g = YD_GET_565_G(color);                            \
237     b = YD_GET_565_B(color);                            \
238 }
239 
240 // --------------------------------------------------------------------------------------
241 
242 /*****A1R5G5B5*****/
243 
244 #define YD_R5G5B5(r,g,b)                                \
245 ( (YWord) ( ( (Ybyte(b) >> 3L) ) |                      \
246             ( (YWord(Ybyte(g)) >> 3L) << 5L ) |         \
247             ( (YWord(Ybyte(r)) >> 3L) << 10L )          \
248 )
249 
250 #define YD_A1R5G5B5(a,r,g,b)                            \
251 ( (YWord) ( ( (Ybyte(b) >> 3L) ) |                      \
252             ( (YWord(Ybyte(g)) >> 3L) << 5L ) |         \
253             ( (YWord(Ybyte(r)) >> 3L) << 10L ) |        \
254             ( (YWord((a) & 1L) << 15L) )                \
255 )
256 
257 #define YD_GET_1555_A(color)    ( ((color) & 0x00008000) ? 255 : 0 )
258 #define YD_GET_1555_R(color)    ( ((color) & 0x00007B00) >> 7L )
259 #define YD_GET_1555_G(color)    ( ((color) & 0x000003E0) >> 2L )
260 #define YD_GET_1555_B(color)    ( ((color) & 0x0000001f) << 3L )
261 
262 #define YD_GET_1555_RGB(color, a, r, g, b)              \
263 {                                                       \
264     a = YD_GET_1555_A(color);                           \
265     r = YD_GET_1555_R(color);                           \
266     g = YD_GET_1555_G(color);                           \
267     b = YD_GET_1555_B(color);                           \
268 }
269 
270 // --------------------------------------------------------------------------------------
271 
272 /*****A4R4G4B4*****/
273 
274 #define YD_R4G4B4(r,g,b)                                \
275 ( (YWord) ( ( (Ybyte(b) >> 4L) ) |                      \
276             ( (YWord(Ybyte(g)) >> 4L) << 4L ) |         \
277             ( (YWord(Ybyte(r)) >> 4L) << 8L ) )         \
278 )
279 
280 #define YD_A4R4G4B4(a,r,g,b)                            \
281 ( (YWord) ( ( (Ybyte(b) >> 4L) ) |                      \
282             ( (YWord(Ybyte(g)) >> 4L) << 4L ) |         \
283             ( (YWord(Ybyte(r)) >> 4L) << 8L ) |         \
284             ( (YWord(Ybyte(a)) >> 4L) << 12L ) )        \
285 )
286 
287 #define YD_GET_4444_A(color)    ( ((color) & 0x0000f000) >> 8L )
288 #define YD_GET_4444_R(color)    ( ((color) & 0x00000f00) >> 4L )
289 #define YD_GET_4444_G(color)    ( ((color) & 0x000000f0) )
290 #define YD_GET_4444_B(color)    ( ((color) & 0x0000000f) << 4L )
291 
292 #define YD_GET_4444_RGB(color, a, r, g, b)              \
293 {                                                       \
294     a = YD_GET_4444_A(color);                           \
295     r = YD_GET_4444_R(color);                           \
296     g = YD_GET_4444_G(color);                           \
297     b = YD_GET_4444_B(color);                           \
298 }
299 
300 // --------------------------------------------------------------------------------------
301 
302 union YColorARGB
303 {
304     struct
305     {
306         Ybyte   b;
307         Ybyte   g;
308         Ybyte   r;        
309         Ybyte   a;        
310     };
311 
312     Ycolor      dwColor;
313 };
314 
315 struct YColorRGB
316 {
317     Ybyte       b;
318     Ybyte       g;
319     Ybyte       r;        
320 };
321 
322 struct YsFloatColor
323 {
324     Yreal       fAlpha;
325     Yreal       fRed;
326     Yreal       fGreen;
327     Yreal       fBlue;
328 };
329 
330 #define YD_R5G6B5_TO_R8G8B8(src565, dest888)            \
331 {                                                       \
332     Ycolor r, g, b;                                     \
333     YD_GET_565_RGB(src565, r, g, b);                    \
334     dest888 = YD_RGB(r, g, b);                          \
335 }
336 
337 #define YD_R8G8B8_TO_R5G6B5(src888, dest565)            \
338 {                                                       \
339     Ycolor r, g, b;                                     \
340     YD_GET_RGB(src888, r, g, b);                        \
341     dest565 = YD_R5G6B5(r, g, b);                       \
342 }
343 
344 #define YD_A1R5G5B5_TO_A8R8G8B8(src1555, dest8888)      \
345 {                                                       \
346     Ycolor a, r, g, b;                                  \
347     YD_GET_1555_RGB(src1555, a, r, g, b);               \
348     dest8888 = YD_ARGB(a, r, g, b);                     \
349 }
350 
351 #define YD_A8R8G8B8_TO_A1R5G5B5(src8888, dest1555)      \
352 {                                                       \
353     Ycolor a, r, g, b;                                  \
354     YD_GET_ARGB(src8888, a, r, g, b);                   \
355     dest1555 = YD_A1R5G5B5(a, r, g, b);                 \
356 }
357 
358 #define YD_A4R4G4B4_TO_A8R8G8B8(src4444, dest8888)      \
359 {                                                       \
360     Ycolor a, r, g, b;                                  \
361     YD_GET_4444_RGB(src4444, a, r, g, b);               \
362     dest8888 = YD_ARGB(a, r, g, b);                     \
363 }
364 
365 #define YD_A8R8G8B8_TO_A4R4G4B4(src8888, dest4444)      \
366 {                                                       \
367     Ycolor a, r, g, b;                                  \
368     YD_GET_ARGB(src8888, a, r, g, b);                   \
369     dest4444 = YD_A4R4G4B4(a, r, g, b);                 \
370 }
371 
372 #define YD_R8G8B8_TO_A8R8G8B8(src888, dest8888)             \
373 {                                                           \
374     dest8888 = YD_ARGB(255, src888.r, src888.g, src888.b);  \
375 }
376 
377 #define YD_A8R8G8B8_TO_R8G8B8(src8888, dest888)             \
378 {                                                           \
379     YD_GET_RGB(src8888, dest888.r, dest888.g, dest888.b);   \
380 }
381 
382 #define YD_FLOATCOLOR_TO_A8R8G8B8(srcFloatColor, dest8888)  \
383 {                                                           \
384     Ybyte a = YD_REAL_TO_BYTE(srcFloatColor.fAlpha);        \
385     Ybyte r = YD_REAL_TO_BYTE(srcFloatColor.fRed);          \
386     Ybyte g = YD_REAL_TO_BYTE(srcFloatColor.fGreen);        \
387     Ybyte b = YD_REAL_TO_BYTE(srcFloatColor.fBlue);         \
388     dest8888 = YD_ARGB(a, r, g, b);                         \
389 }
390 
391 #define YD_A8R8G8B8_TO_FLOATCOLOR(src8888, destFloatColor)  \
392 {                                                           \
393     Ycolor a, r, g, b;                                      \
394     YD_GET_ARGB(src8888, a, r, g, b);                       \
395     srcFloatColor.fAlpha = YD_BYTE_TO_REAL(a);              \
396     srcFloatColor.fRed   = YD_BYTE_TO_REAL(r);              \
397     srcFloatColor.fGreen = YD_BYTE_TO_REAL(g);              \
398     srcFloatColor.fBlue  = YD_BYTE_TO_REAL(b);              \
399 }
400 
401 // --------------------------------------------------------------------------------------
402 
403 #define YD_COLOR_LIGHT_PINK             YD_RGB(255, 182, 193)        // 浅粉红
404 #define YD_COLOR_PINK                   YD_RGB(255, 192, 203)        // 粉红
405 #define YD_COLOR_CRIMSON_RED            YD_RGB(220,  20,  60)        // 猩红 (深红)
406 #define YD_COLOR_LAVENDER_BLUSH         YD_RGB(255, 240, 245)        // 淡紫红
407 #define YD_COLOR_PALE_VIOLET_RED        YD_RGB(219, 112, 147)        // 弱紫罗兰红
408 #define YD_COLOR_HOT_PINK               YD_RGB(255, 105, 180)        // 热情的粉红
409 #define YD_COLOR_DEEP_PINK              YD_RGB(255,  20, 147)        // 深粉红
410 #define YD_COLOR_MEDIUM_VIOLET_RED      YD_RGB(199,  21, 133)        // 中紫罗兰红
411 #define YD_COLOR_ORCHID                 YD_RGB(218, 112, 214)        // 兰花紫
412 #define YD_COLOR_THISTLE                YD_RGB(216, 191, 216)        //
413 #define YD_COLOR_PLUM                   YD_RGB(221, 160, 221)        // 李子紫
414 #define YD_COLOR_VIOLET                 YD_RGB(238, 130, 238)        // 紫罗兰
415 #define YD_COLOR_MAGENTA                YD_RGB(255,   0, 255)        // 洋红 (品红 玫瑰红)
416 #define YD_COLOR_FUCHSIA                YD_RGB(255,   0, 255)        // 灯笼海棠(紫红色)
417 #define YD_COLOR_DARK_MAGENTA           YD_RGB(139,   0, 139)        // 深洋红
418 #define YD_COLOR_PURPLE                 YD_RGB(128,   0, 128)        // 紫色
419 #define YD_COLOR_MEDIUM_ORCHID          YD_RGB(186,  85, 211)        // 中兰花紫
420 #define YD_COLOR_DARK_VIOLET            YD_RGB(148,   0, 211)        // 暗紫罗兰
421 #define YD_COLOR_DARK_ORCHID            YD_RGB(153,  50, 204)        // 暗兰花紫
422 #define YD_COLOR_INDIGO                 YD_RGB( 75,   0, 130)        // 靛青 (紫兰色)
423 #define YD_COLOR_BLUE_VIOLET            YD_RGB(138,  43, 226)        // 蓝紫罗兰
424 #define YD_COLOR_MEDIUM_PURPLE          YD_RGB(147, 112, 219)        // 中紫色
425 #define YD_COLOR_MEDIUM_SLATE_BLUE      YD_RGB(123, 104, 238)        // 中板岩蓝
426 #define YD_COLOR_SLATE_BLUE             YD_RGB(106,  90, 205)        // 板岩蓝
427 #define YD_COLOR_DARK_SLATE_BLUE        YD_RGB( 72,  61, 139)        // 暗板岩蓝
428 #define YD_COLOR_LAVENDER               YD_RGB(230, 230, 250)        // 熏衣草淡紫
429 #define YD_COLOR_GHOST_WHITE            YD_RGB(248, 248, 255)        // 幽灵白
430 #define YD_COLOR_BLUE                   YD_RGB(  0,   0, 255)        // 纯蓝
431 #define YD_COLOR_MEDIUM_BLUE            YD_RGB(  0,   0, 205)        // 中蓝色
432 #define YD_COLOR_MIDNIGHT_BLUE          YD_RGB( 25,  25, 112)        // 午夜蓝
433 #define YD_COLOR_DARK_BLUE              YD_RGB(  0,   0, 139)        // 暗蓝色
434 #define YD_COLOR_NAVY_BLUE              YD_RGB(  0,   0, 128)        // 海军蓝
435 #define YD_COLOR_ROYAL_BLUE             YD_RGB( 65, 105, 225)        // 皇家蓝 (宝蓝)
436 #define YD_COLOR_CORN_FLOWER_BLUE       YD_RGB(100, 149, 237)        // 矢车菊蓝
437 #define YD_COLOR_LIGHT_STEEL_BLUE       YD_RGB(176, 196, 222)        // 亮钢蓝
438 #define YD_COLOR_LIGHT_SLATE_GRAY       YD_RGB(119, 136, 153)        // 亮石板灰
439 #define YD_COLOR_SLATE_GRAY             YD_RGB(112, 128, 144)        // 石板灰
440 #define YD_COLOR_DODGER_BLUE            YD_RGB( 30, 144, 255)        // 道奇蓝
441 #define YD_COLOR_ALICE_BLUE             YD_RGB(240, 248, 255)        // 爱丽丝蓝
442 #define YD_COLOR_STEEL_BLUE             YD_RGB( 70, 130, 180)        // 钢蓝 (铁青)
443 #define YD_COLOR_LIGHT_SKY_BLUE         YD_RGB(135, 206, 250)        // 亮天蓝色
444 #define YD_COLOR_SKY_BLUE               YD_RGB(135, 206, 235)        // 天蓝色
445 #define YD_COLOR_DEEP_SKY_BLUE          YD_RGB(  0, 191, 255)        // 深天蓝
446 #define YD_COLOR_LIGHT_BLUE             YD_RGB(173, 216, 230)        // 亮蓝
447 #define YD_COLOR_POWDER_BLUE            YD_RGB(176, 224, 230)        // 火药青
448 #define YD_COLOR_CADET_BLUE             YD_RGB( 95, 158, 160)        // 军服蓝
449 #define YD_COLOR_AZURE                  YD_RGB(240, 255, 255)        // 蔚蓝色
450 #define YD_COLOR_LIGHT_CYAN             YD_RGB(224, 255, 255)        // 淡青色
451 #define YD_COLOR_PALE_TURQUOISE         YD_RGB(175, 238, 238)        // 弱绿宝石
452 #define YD_COLOR_CYAN                   YD_RGB(  0, 255, 255)        // 青色
453 #define YD_COLOR_AQUA                   YD_RGB(  0, 255, 255)        // 水色
454 #define YD_COLOR_DARK_TURQUOISE         YD_RGB(  0, 206, 209)        // 暗绿宝石
455 #define YD_COLOR_DARK_SLATE_GRAY        YD_RGB( 47,  79,  79)        // 暗石板灰
456 #define YD_COLOR_DARK_CYAN              YD_RGB(  0, 139, 139)        // 暗青色
457 #define YD_COLOR_TEAL                   YD_RGB(  0, 128, 128)        // 水鸭色
458 #define YD_COLOR_MEDIUM_TURQUOISE       YD_RGB( 72, 209, 204)        // 中绿宝石
459 #define YD_COLOR_LIGHT_SEA_GREEN        YD_RGB( 32, 178, 170)        // 浅海洋绿
460 #define YD_COLOR_TURQUOISE              YD_RGB( 64, 224, 208)        // 绿宝石
461 #define YD_COLOR_AQUAMARINE             YD_RGB(127, 255, 212)        // 宝石碧绿
462 #define YD_COLOR_MEDIUM_AQUAMARINE      YD_RGB(102, 205, 170)        // 中宝石碧绿
463 #define YD_COLOR_MEDIUM_SPRINGGREEN     YD_RGB(  0, 250, 154)        // 中春绿色
464 #define YD_COLOR_MINT_CREAM             YD_RGB(245, 255, 250)        // 薄荷奶油
465 #define YD_COLOR_SPRING_GREEN           YD_RGB(  0, 255, 127)        // 春绿色
466 #define YD_COLOR_MEDIUM_SEA_GREEN       YD_RGB( 60, 179, 113)        // 中海洋绿
467 #define YD_COLOR_SEA_GREEN              YD_RGB( 46, 139,  87)        // 海洋绿
468 #define YD_COLOR_HONEYDEW               YD_RGB(240, 255, 240)        // 蜜瓜色
469 #define YD_COLOR_LIGHT_GREEN            YD_RGB(144, 238, 144)        // 淡绿色
470 #define YD_COLOR_PALE_GREEN             YD_RGB(152, 251, 152)        // 弱绿色
471 #define YD_COLOR_DARK_SEA_GREEN         YD_RGB(143, 188, 143)        // 暗海洋绿
472 #define YD_COLOR_LIME_GREEN             YD_RGB( 50, 205,  50)        // 闪光深绿
473 #define YD_COLOR_LIME                   YD_RGB(  0, 255,   0)        // 闪光绿
474 #define YD_COLOR_FOREST_GREEN           YD_RGB( 34, 139,  34)        // 森林绿
475 #define YD_COLOR_GREEN                  YD_RGB(  0, 128,   0)        // 纯绿
476 #define YD_COLOR_DARK_GREEN             YD_RGB(  0, 100,   0)        // 暗绿色
477 #define YD_COLOR_CHARTREUSE             YD_RGB(127, 255,   0)        // 查特酒绿 (黄绿色)
478 #define YD_COLOR_LAWN_GREEN             YD_RGB(124, 252,   0)        // 草坪绿
479 #define YD_COLOR_GREEN_YELLOW           YD_RGB(173, 255,  47)        // 绿黄色
480 #define YD_COLOR_DARK_OLIVE_GREEN       YD_RGB( 85, 107,  47)        // 暗橄榄绿
481 #define YD_COLOR_YELLOW_GREEN           YD_RGB(154, 205,  50)        // 黄绿色
482 #define YD_COLOR_OLIVE_DRAB             YD_RGB(107, 142,  35)        // 橄榄褐色
483 #define YD_COLOR_BEIGE                  YD_RGB(245, 245, 220)        // 米色(灰棕色)
484 #define YD_COLOR_LIGHT_GOLDENROD_YELLOW YD_RGB(250, 250, 210)        // 亮菊黄
485 #define YD_COLOR_IVORY                  YD_RGB(255, 255, 240)        // 象牙
486 #define YD_COLOR_LIGHT_YELLOW           YD_RGB(255, 255, 224)        // 浅黄色
487 #define YD_COLOR_YELLOW                 YD_RGB(255, 255,   0)        // 纯黄
488 #define YD_COLOR_OLIVE                  YD_RGB(128, 128,   0)        // 橄榄
489 #define YD_COLOR_DARK_KHAKI             YD_RGB(189, 183, 107)        // 深卡叽布
490 #define YD_COLOR_LEMON_CHIFFON          YD_RGB(255, 250, 205)        // 柠檬绸
491 #define YD_COLOR_PALE_GOLDENROD         YD_RGB(238, 232, 170)        // 灰菊黄
492 #define YD_COLOR_KHAKI                  YD_RGB(240, 230, 140)        // 卡叽布
493 #define YD_COLOR_GOLD                   YD_RGB(255, 215,   0)        // 金色
494 #define YD_COLOR_CORNSILK               YD_RGB(255, 248, 220)        // 玉米丝色 
495 #define YD_COLOR_GOLDENROD              YD_RGB(218, 165,  32)        // 金菊黄 
496 #define YD_COLOR_DARK_GOLDENROD         YD_RGB(184, 134,  11)        // 暗金菊黄 
497 #define YD_COLOR_FLORAL_WHITE           YD_RGB(255, 250, 240)        // 花的白色 
498 #define YD_COLOR_OLD_LACE               YD_RGB(253, 245, 230)        // 旧蕾丝 
499 #define YD_COLOR_WHEAT                  YD_RGB(245, 222, 179)        // 小麦色 
500 #define YD_COLOR_MOCCASIN               YD_RGB(255, 228, 181)        // 鹿皮靴 
501 #define YD_COLOR_ORANGE                 YD_RGB(255, 165,   0)        // 橙色 
502 #define YD_COLOR_PAPAYA_WHIP            YD_RGB(255, 239, 213)        // 番木瓜 
503 #define YD_COLOR_BLANCHED_ALMOND        YD_RGB(255, 235, 205)        // 发白的杏仁色 
504 #define YD_COLOR_NAVAJO_WHITE           YD_RGB(255, 222, 173)        // 土著白 
505 #define YD_COLOR_ANTIQUE_WHITE          YD_RGB(250, 235, 215)        // 古董白 
506 #define YD_COLOR_TAN                    YD_RGB(210, 180, 140)        // 茶色 
507 #define YD_COLOR_BURLY_WOOD             YD_RGB(222, 184, 135)        // 硬木色 
508 #define YD_COLOR_BISQUE                 YD_RGB(255, 228, 196)        // 陶坯黄 
509 #define YD_COLOR_DARK_ORANGE            YD_RGB(255, 140,   0)        // 深橙色 
510 #define YD_COLOR_LINEN                  YD_RGB(250, 240, 230)        // 亚麻布 
511 #define YD_COLOR_PERU                   YD_RGB(205, 133,  63)        // 秘鲁 
512 #define YD_COLOR_PEACH_PUFF             YD_RGB(255, 218, 185)        // 桃肉色 
513 #define YD_COLOR_SANDY_BROWN            YD_RGB(244, 164,  96)        // 沙棕色 
514 #define YD_COLOR_CHOCOLATE              YD_RGB(210, 105,  30)        // 巧克力 
515 #define YD_COLOR_SADDLE_BROWN           YD_RGB(139,  69,  19)        // 马鞍棕色 
516 #define YD_COLOR_SEASHELL               YD_RGB(255, 245, 238)        // 海贝壳 
517 #define YD_COLOR_SIENNA                 YD_RGB(160,  82,  45)        // 黄土赭色 
518 #define YD_COLOR_LIGHT_SALMON           YD_RGB(255, 160, 122)        // 浅鲑鱼肉色 
519 #define YD_COLOR_CORAL                  YD_RGB(255, 127,  80)        // 珊瑚 
520 #define YD_COLOR_ORANGE_RED             YD_RGB(255,  69,   0)        // 橙红色 
521 #define YD_COLOR_DARK_SALMON            YD_RGB(233, 150, 122)        // 深鲜肉(鲑鱼)色 
522 #define YD_COLOR_TOMATO                 YD_RGB(255,  99,  71)        // 番茄红 
523 #define YD_COLOR_MISTY_ROSE             YD_RGB(255, 228, 225)        // 薄雾玫瑰 
524 #define YD_COLOR_SALMON                 YD_RGB(250, 128, 114)        // 鲜肉(鲑鱼)色 
525 #define YD_COLOR_SNOW                   YD_RGB(255, 250, 250)        //
526 #define YD_COLOR_LIGHT_CORAL            YD_RGB(240, 128, 128)        // 淡珊瑚色 
527 #define YD_COLOR_ROSY_BROWN             YD_RGB(188, 143, 143)        // 玫瑰棕色 
528 #define YD_COLOR_INDIAN_RED             YD_RGB(205,  92,  92)        // 印度红 
529 #define YD_COLOR_RED                    YD_RGB(255,   0,   0)        // 纯红 
530 #define YD_COLOR_BROWN                  YD_RGB(165,  42,  42)        // 棕色 
531 #define YD_COLOR_FIRE_BRICK             YD_RGB(178,  34,  34)        // 耐火砖 
532 #define YD_COLOR_DARK_RED               YD_RGB(139,   0,   0)        // 深红色 
533 #define YD_COLOR_MAROON                 YD_RGB(128,   0,   0)        // 栗色 
534 #define YD_COLOR_WHITE                  YD_RGB(255, 255, 255)        // 纯白 
535 #define YD_COLOR_WHITE_SMOKE            YD_RGB(245, 245, 245)        // 白烟 
536 #define YD_COLOR_GAINSBORO              YD_RGB(220, 220, 220)        // 庚斯博罗灰色 
537 #define YD_COLOR_LIGHT_GREY             YD_RGB(211, 211, 211)        // 浅灰色 
538 #define YD_COLOR_SILVER                 YD_RGB(192, 192, 192)        // 银灰色 
539 #define YD_COLOR_DARK_GRAY              YD_RGB(169, 169, 169)        // 深灰色 
540 #define YD_COLOR_GRAY                   YD_RGB(186, 183, 186)        // 灰色(*) 
541 #define YD_COLOR_DIM_GRAY               YD_RGB(105, 105, 105)        // 暗淡的灰色 
542 #define YD_COLOR_BLACK                  YD_RGB(  0,   0,   0)        // 纯黑 
543 
544 // --------------------------------------------------------------------------------------
545 
546 #endif

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值