图像调整亮度饱和度 c语言,顏色空間RGB與 色調、飽和度、亮度(ESL)轉換的完整C語言算法...

你把0-240 按比例 縮放 一下 到 HSL 的 范圍,用 HSL-RGB 轉換。

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 = L; g = L;b = L;

if (L <= 0.5) v = L * (1.0 + s); else v = L + s - L * s;

if (v > 0) {

m = L + L - v; sv = (v - m ) / v;

h = h * 6.0; ih = (int)h;

xiaoshu = h - ih;

vs0 = v * sv * xiaoshu; c1 = m + vs0; c2 = v - vs0;

switch (ih) {

case 0: r = v; g = c1; b = m; break;

case 1: r = c2; g = v; b = m; break;

case 2: r = m; g = v; b = c1; break;

case 3: r = m; g = c2; b = v; break;

case 4: r = c1; g = m; b = v; break;

case 5: r = v; g = m; b = c2; break;

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 == 金色潛鳥)

提問者評價

多謝!再加10分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值