
HSL--H是色相(0到360度),S是饱和度(0到1),L是亮度(0到1)
规1化的 HSL到RGB颜色值算换子程序:
// nomorized h,s,L 0-1.0
void HSL2RGB(double h, double s, double L,unsigned char *rr, unsigned char *gg,
unsigned char *bb)
{
double v,m,sv, vs0, c1, c2,xiaoshu,r,g,b
int ih
r = Lg = Lb = L
if (L <= 0.5) v = L * (1.0 + s)else v = L + s - L * s
if (v >0) {
m = L + L - vsv = (v - m ) / v
h = h * 6.0ih = (int)h
xiaoshu = h - ih
vs0 = v * sv * xiaoshuc1 = m + vs0c2 = v - vs0
switch (ih) {
case 0: r = vg = c1b = mbreak
case 1: r = c2g = vb = mbreak
case 2: r = m g = vb = c1break
case 3: r = mg = c2b = vbreak
case 4: r = c1g = mb = vbreak
case 5: r = v g = mb = c2break
default: break
}
}
*rr = (int) (r * 0xff)*gg = (int) (g * 0xff)*bb = (int) (b * 0xff)
}
把你3个数值,各除以240,代入子程序即可。
详见:http://hi.baidu.com/svjvcfwticdkmse/item/e6c43a21e385b10977272c0e
彩虹光谱RGB值自动生成程序 (L_o_o_n_i_e == 金色潜鸟)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)