標(biāo)題: C語言HSL轉(zhuǎn)RGB程序 [打印本頁]

作者: 艾爾之光tt    時(shí)間: 2021-9-7 12:27
標(biāo)題: C語言HSL轉(zhuǎn)RGB程序
這樣的程序,隨機(jī)輸入一些,得出的結(jié)果都是b的值。r,g兩個(gè)的值都是b的值。輸入范圍是正常的HSL數(shù)值范圍。
  1. float hue2rgb(float p,float q,float t){
  2.             
  3.             if(t < 1/6)
  4.             {
  5.              return p + (q - p) * 6 * t;           
  6.             }
  7.             if(1/6<=t&&t < 1/2)
  8.             {
  9.             return q;
  10.             }
  11.             if(1/2<=t&&t < 2/3) {
  12.             return p + (q - p) * (2/3 - t) * 6;
  13.             }
  14.              return p;
  15.         }
  16. float hslToRgb(float h, float s, float l){
  17.     float  q,p;
  18.     float  r,g,b;
  19.     h=h/360;
  20.     s=s/100;
  21.     l=l/100;
  22.     if(s == 0){
  23.         r = g = b = l; // achromatic
  24.     }else{
  25.         if(l<0.5){
  26.         q=l * (1 + s);
  27.         }else{
  28.        q=l + s - l * s;
  29.         }
  30.           if(h < 0) h=h+ 1;
  31.           if(h > 1) h=h- 1;
  32.         
  33.          p = 2 * l - q;
  34.         r = 255*hue2rgb(p, q, h+1/3);
  35.         g =255* hue2rgb(p, q, h);
  36.         b =255* hue2rgb(p, q, h-1/3);
  37.     }

  38.     return  b;
  39. }
復(fù)制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1