很多年前整理的,像素处理的宏定义,包括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

转载于:https://www.cnblogs.com/WhyEngine/p/3454229.html

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

  1. IOS,十六进制颜色和RGB颜色的宏定义

    2019独角兽企业重金招聘Python工程师标准>>> 16进制颜色值宏定义. //调用NSString *str = model.Color; NSString *strColor ...

  2. process调用protothread机制的相关宏定义——用HelloWorld进程诠释

    一.HelloWorld例子 #include "contiki.h"#include <stdio.h> /* For printf() */ /*--------- ...

  3. Unity3D 多平台_预编译相关宏定义

    http://www.cnblogs.com/zhaoqingqing/p/3510332.html API地址:http://docs.unity3d.com/Documentation/Manua ...

  4. 内联函数和宏定义的相关区别

    内联函数和宏定义的区别 相同点 : 主要是为了避免被调用时的开销,是通过编译器来进行实现,而宏定义是通过预处理器进行替换,宏定义不检查函数参数,返回值等东西,只是展开,而相对来说,内联函数会进行检查参 ...

  5. 算法研发---对宏定义#define相关研究

    2019独角兽企业重金招聘Python工程师标准>>>  是否看到这样的东东有种头大了的感觉:   NTF_HR(m_pBaseClass->SetStr(m_hGPROG ...

  6. C++常见问题(三)——宏定义、const、static、sizeof的相关实例

    第一部分 宏定义 宏定义的语法格式:#define <标识符><字符串>,其中的标识符就是所谓的符号常量,也称为"宏名".预处理工作也叫宏展开.宏定义不占用 ...

  7. C语言数组使用、数组相关的宏定义剖析,及矩阵乘积、杨辉三角实例

         数组一直是编程语言学习中需要重点掌握的部分,它是最基本的数据结构类型,是构成字符串及其他许多重要构造结构的基础.相对许多其他高级语言来说,C语言对数组本身提供的支持并不太多,尤其是不支持动态 ...

  8. GetLastErr返回值ErrCode的宏定义以及含义

    参考链接:https://docs.microsoft.com/en-us/previous-versions/aa911366(v=msdn.10)?redirectedfrom=MSDN 十进制 ...

  9. moviepy音视频剪辑:颜色相关变换函数blackwhite、colorx、fadein/out、gamma_corr、invert_colors、lum_contrast、mask_color介绍

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...

最新文章

  1. 倒计时或按任意键返回首页_客服魔方更新:首页界面大改版,催拍催付操作更方便...
  2. 解决报错:tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.
  3. Java正則表達式入门
  4. qt designer 插入图片_高清免版权免费图片素材哪里找?
  5. 源码包部署tomcat
  6. open-capacity-platform STS项目导入
  7. 计算机科学综合常用链接
  8. espflashdownloadtool连接串口失败_关于串口下载问题和超时
  9. window document
  10. 模拟退火算法解决np_P和NP问题与解决方案| 演算法
  11. Java-eclipse快捷键及设置
  12. 2019自考00018计算机应用基础,全国2019年4月自考00018《计算机应用基础》试题及答案...
  13. 面试收集—hello,world 也有新花样
  14. 蚂蚁金服服务器系统,蚂蚁金服轻量级监控分析系统 SOFALookout 服务端开源
  15. java fileutils api_FileUtils API
  16. c语言变量报存在bss段,浅谈c语言代码段 数据段 bss段
  17. 2019-3-5 梦
  18. Telegram传奇:俄罗斯富豪、黑客高手、极权和阴谋
  19. 我的2020java社招岗面经,阿里巴巴社招面试经历(Java工程师方向)
  20. 华为应用市场名称问题

热门文章

  1. Scala if...else案例
  2. Java Servlet监听器的分类
  3. Hadoop三大核心组件及需求催生大数据技术的背景
  4. python数据输出_python数据输出
  5. linux 句柄_linux 文件句柄数查看命令
  6. 性能测试(04)-表达式和业务关联-JDBC关联
  7. 回调函数之Java/C++版本
  8. 帮你理解特征向量的几何意义?
  9. 计组(唐朔飞)第一章自我总结
  10. 计算机网络英语第二章,计算机网络英文题库(附答案)chapter2.doc