计算CIE1931

 

5.检查发现的xy值是否在光的色域内,如果没有继续执行步骤6,则在执行步骤7时

我们发送了一个光不能发送的值,得到的颜色可能不是最优的。

因此我们尽量只发送

位于所选光的色域内的值。

6.计算色域三角形上的最近点,并将其作为xy值计算最近值

画一条垂线到三角形所包含的一条直线上当它仍然不在三角形内时,

我们选择三角形最近的角点。

7.使用XYZ的Y值作为亮度,Y值表示转换后颜色的亮度。

xy到颜色的转换几乎是相同的,但顺序相反。

(1) 检查xy值是否在灯的色域内,如果不继续执行步骤2,则执行步骤3

计算出最准确的颜色,给定的光实际上可以做到。

(2)计算色域三角形上的最近点,并将其作为xy值使用,参见第6步颜色到xy。

(3)计算XYZ值转换使用以下公式:

浮点数x = x;//给定的x值

float y = y;//给定的y值

浮点z = 1.0f - x - y;

float Y =亮度;//给定的亮度值

浮点X = (Y / Y) * X;

浮点Z = (Y / Y) * Z;

(4) 使用宽RGB D65转换转换到RGB(目前是D50转换)

浮点数r = X * 1.4628067f - Y * 0.1840623f - Z * 0.2743606f;

浮子g = -X * 0.5217933f + Y * 1.4472381f + Z * 0.0677227f;

浮点b = X * 0.0349342f - Y * 0.0968930f + Z * 1.2884099f;

(5) 应用反伽马校正

r = r <= 0.0031308f ?12.92 f * r:(1.0 + 0.055 f) *战俘(r, (1.0 f / 2.4 f)) - 0.055 f;

g = g <= 0.0031308f ?12.92 f * g: f(1.0 + 0.055) *战俘(g、f)) (1.0 f / 2.4 - 0.055 f;

b = b <= 0.0031308f ?12.92 f * b: f(1.0 + 0.055) *战俘(b (1.0 f / 2.4 f)) - 0.055 f;

(6). 将RGB值转换为您的color对象上面公式中的RGB值介于0.0到1.0之间。

进一步信息以下链接提供了进一步有用的相关信息sRGB:

相关文章:

  • 2021-12-12
  • 2021-07-07
  • 2021-12-25
  • 2021-11-09
  • 2022-01-14
  • 2021-11-21
  • 2022-01-04
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-21
  • 2021-05-02
  • 2021-08-09
  • 2021-12-29
  • 2021-04-22
  • 2021-09-19
相关资源
相似解决方案