COLORADJUSTMENT结构

COLORADJUSTMENT结构具有如下形式:
typedef struct tagCOLORADJUSTMENT
{ /* ca */
  WORD  caSize;
  WORD  caFlags;
  WORD  caIlluminantIndex;
  WORD  caRedGamma;
  WORD  caGreenGamma;
  WORD  caBlueGamma;
  WORD  caReferenceBlack;
  WORD  caReferenceWhite;
  SHORT caContrast;
  SHORT caBrightness;
  SHORT caColorfulness;
  SHORT caRedGreenTint;
} COLORADJUSTMENT;
COLORADJUSTMENT结构定义了当StretchBlt模式为HALFTONE时,Windows的StretchBlt和StretchDIBits函数使用的颜色调整值。

成员:
caSize指定了该结构以字节为单位的大小。
caFlags指定了如何准备输出图象。这个成员可以被设为NULL或是下列值的组合:
·CA_NEGATIVE指定了要显示原图的反相图。
·CA_LOG_FILTER指定了一个对数函数,将对输出颜色的最后深度起作用。当亮度较低时,这将增加颜色的对比度。
caIlluminantIndex指定了光源的亮度,图象将在该光源下显示。这个成员可以被设为下列值中的一个:
·ILLUMINANT_EQUAL_ENERGY
·ILLUMINANT_A
·ILLUMINANT_B
·ILLUMINANT_C
·ILLUMINANT_D50
·ILLUMINANT_D55
·ILLUMINANT_D65
·ILLUMINANT_D75
·ILLUMINANT_F2
·ILLUMINANT_TURNGSTEN
·ILLUMINANT_DAYLIGHT
·ILLUMINANT_FLUORESCENT
·ILLUMINANT_NTSC
caRedGamma指定了原色中红原色的n次gamma修正值。这个值必须介于2500~65000之间。如果值等于10000,则意味着没有gamma修正。
caGreenGamma指定了原色中绿原色的n次gamma修正值。这个值必须介于2500~65000之间。如果值等于10000,则意味着没有gamma修正。
caBlueGamma指定了原色中蓝原色的n次gamma修正值。这个值必须介于2500~65000之间。如果值等于10000,则意味着没有gamma修正。
caReferenceBlack指定了源色的黑色参考值。任何比这个值暗的颜色被当作黑色。这个值必须介于0~4000之间。
caReferenceWhite指定了源色的白色参考值。任何比这个值亮的颜色被当作白色。这个值必须介于6000~10000之间。
caContrast指定了对源对象应用的对比度值。这个值必须介于-100~100之间。如果该值为0则意味着没有对比度调整。
caBrightness指定了对源对象应用的亮度值。这个值必须介于-100~100之间。如果该值为0,则意味着没有亮度调整。
caColorfulness指定了对源对象应用的饱和度值。这个值必须介于-100~100之间。如果该值为0,则意味着没有饱和度调整。
caRedGreenTint指定了应用于源对象的红或绿校正值。这个值必须介于-100~100之间。正数将会向红色调整,而负数将会向绿色调整。如果这个值为0,则意味着没有调整。

请参阅:CDC::GetColorAdjustment