2013-04-16 56 views
0

飛利浦色相燈泡支持三種不同的顏色模型(溫度在mireds,色調/飽和度和cie1931)。d3顏色模型對飛利浦色相

因爲cie1931是燈泡使用的'本地'模型,大部分時間都是燈泡報告的模型。我的天真思維是使用d3.lab(1,cie1931.x,cie1931.y).rgb(),但這是不對的(所有顏色都非常接近黑色)。

顏色模型大師能否指示我將cie1931 [x,y]映射到由d3支持的模型之一?

的感謝!

回答

0
d3.cie1931 = { 
// https://gist.github.com/AaronH/30c50aa4b161f8169c3d 

    rgb : function(x, y) { 
    var r, g, b, z; 

    z = 1 - (x + y); 

/* 
    |R| | X | | 3.2333   -1.5262   0.2791 | 
    |G| = | Y | * |-0.8268   2.4667   0.3323 | 
    |B| | Z | | 0.1294   0.1983   2.0280 | 
*/ 
    r =  (x * 3.2333) + (y * -1.5262) + (z * 0.2791); 
    g =  (x * -0.8268) + (y * 2.4667) + (z * 0.3323); 
    b =  (x * 0.1294) + (y * 0.1983) + (z * 2.0280); 
    return d3.rgb (Math.max(0, Math.min(255, r * 255)), 
        Math.max(0, Math.min(255, g * 255)), 
        Math.max(0, Math.min(255, b * 255))); 
    } 
}; 
0

飛利浦色調SDK適用於iOS有Application Note這也解釋瞭如何將XY值轉換爲RGB。也許你可以採用這個來滿足你的需求。