簡體   English   中英

RGB到RGB加AMBER

[英]RGB to RGB plus AMBER

我想從更高的系統控制DMX燈光。 我只收到RGB值0-255。 DMX燈有紅色,綠色,藍色和琥珀色(0-255)。 如何將RGB轉換為RGB +琥珀色?

我嘗試手動調節燈光,但是轉換表對我來說不是一個選擇,因為我的內存有限。 謝謝。 [R

根據光線,存在不同的色彩空間。 每個顏色空間都是一個維空間,因此沿“維”組合顏色將導致混合的顏色。

RGB,意味着您可以混合使用Red,Green和Blue的各種值。 琥珀色已經是混合色,因此要將“琥珀色”“添加”到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%驅動琥珀色將有效地將所有紅色通道歸零。

琥珀色為#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,但這應該足夠接近以使其簡單易用

琥珀色LED具有與紅色,綠色,藍色和白色LED不同的光譜。 沒有RGB-> RGBA轉換,因為與單獨使用RGB LED相比,最終將獲得不同的照明光譜。

旁注:與紅色和綠色相比,琥珀色LED通常非常暗,因此,如果您只是嘗試產生對我們的眼睛“看起來”為黃色的光,則可以忽略DMX燈的琥珀色通道而無需犧牲太多總亮度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM