日历

载入中...

站内搜索

分类

载入中...

最新文章

载入中...

QQ

登陆

载入中...

回复

载入中...

站点统计

载入中...

友情链接

色调,饱和度,亮度 转为 RGB2008-7-14 19:21:00

// Converts HSV to RGB
//-------------------------------------------------------------------------------

H: Hue        - 色调(如红,蓝,黄,绿...)
S: Saturation - 饱和度
V: Value      - 亮度


void hsv_to_rgb (unsigned char h, unsigned char s, unsigned char v, RGB * out)
{
        unsigned char r=0,g=0,b=0, i, f;
        unsigned int p, q, t;

        if( s == 0 ) {        
                r = g = b = v;
        }
        else
        {        i=h/43;
                f=h%43;
                p = (v * (255 - s))/256;
                q = (v * ((10710 - (s * f))/42))/256;
                t = (v * ((10710 - (s * (42 - f)))/42))/256;

                switch( i )
                {        case 0:
                                r = v; g = t; b = p; break;
                        case 1:
                                r = q; g = v; b = p; break;
                        case 2:
                                r = p; g = v; b = t; break;
                        case 3:
                                r = p; g = q; b = v; break;                        
                        case 4:
                                r = t; g = p; b = v; break;                                
                        case 5:
                                 r = v; g = p; b = q; break;
                }
        }
        out->r=r; out->g=g; out->b=b;
}

发表评论:
载入中...