飛利浦色相燈泡支持三種不同的顏色模型(溫度在mireds,色調/飽和度和cie1931)。d3顏色模型對飛利浦色相
因爲cie1931是燈泡使用的'本地'模型,大部分時間都是燈泡報告的模型。我的天真思維是使用d3.lab(1,cie1931.x,cie1931.y).rgb(),但這是不對的(所有顏色都非常接近黑色)。
顏色模型大師能否指示我將cie1931 [x,y]映射到由d3支持的模型之一?
的感謝!
飛利浦色相燈泡支持三種不同的顏色模型(溫度在mireds,色調/飽和度和cie1931)。d3顏色模型對飛利浦色相
因爲cie1931是燈泡使用的'本地'模型,大部分時間都是燈泡報告的模型。我的天真思維是使用d3.lab(1,cie1931.x,cie1931.y).rgb(),但這是不對的(所有顏色都非常接近黑色)。
顏色模型大師能否指示我將cie1931 [x,y]映射到由d3支持的模型之一?
的感謝!
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)));
}
};
飛利浦色調SDK適用於iOS有Application Note這也解釋瞭如何將XY值轉換爲RGB。也許你可以採用這個來滿足你的需求。