我想从更高的系统控制DMX光。我只收到0-255的RGB值。DMX灯有红色、绿色、蓝色和琥珀色(0-255)。如何将RGB转换为RGB +琥珀色?
我尝试手动调整灯光,但转换表不是我的选项,因为我的内存有限。谢谢。R
发布于 2015-09-09 00:48:34
在光中,有不同的颜色空间。每个颜色空间都是一个维度空间,使得沿着“维度”组合颜色将产生混合颜色。
RGB,意味着你可以混合红色,绿色和蓝色的不同值。琥珀已经是一种混合物,因此要将琥珀添加到RGB,您必须决定如何调整红色、绿色和蓝色的值,使它们看起来更像琥珀。
琥珀是#FFBF00或( RGB : 255,191,0),所以第一步是计算出RGB值的“琥珀”值是多少。例如,(RGB: 128,80,0)为50%琥珀色,0%其他值。
一旦你可以计算出琥珀色的百分比,你就可以“拉出琥珀色”,剩下的非琥珀色留在RGB中。然后你就可以拥有一个RGBAmber色彩空间。
请记住,您不能过度驱动RGB,所以如果您添加(RGBAmber: 50%,20%,0%,100%),它将被转换为RGB(100%,...)这不会让红色像其他颜色那样放大,让琥珀色的东西看起来有点不对劲。
在现实中,这将适当地近似于第四个琥珀维度的构造;但是,它将不正确。事实是,你不能从其他三个维度完全构建第四个维度,因为红色、绿色和蓝色的物理混合与琥珀通道产生的不同。例如,在所有通道上以100%的速度驱动RGBAmber是完全有效的,但RGB永远不能这样做,因为如果以100%的速度驱动琥珀色,您将有效地将所有红色通道归零。
发布于 2017-03-04 09:41:32
琥珀色LED与红色、绿色、蓝色和白色LED具有不同的光谱。没有RGB --> RGBA转换,因为与单独使用RGB LED相比,您最终将获得不同的照明光谱。
附注:与红色和绿色相比,琥珀色red通常非常暗淡,因此,如果您只是试图产生在我们的眼睛看来“看起来”是黄色的光,您可以忽略DMX光的琥珀色通道,而不会牺牲太多总亮度。
发布于 2015-09-09 04:21:15
琥珀色是#FFBF00或(RGB: 255,191,0)
char amber = (floor(255.0f*(R*1.0f+G*.749f)/446.0f))计算的这一部分执行琥珀比例:
(R*1.0f+G*.749f)/446.0f) and results in a value range 0.0f...1.0f计算的这部分执行缩放到0...255
255.0f*计算的这一部分消除了分数
(floor(....)在所有的可能性中,产生的范围将是0...254,但这应该足够接近,以保持其简单和可用
https://stackoverflow.com/questions/32462331
复制相似问题