我在重複問這個問題,因爲我的第一次嘗試被錯誤地標記爲重複,並且我仍然希望有人可能爲我解答。如何根據前景色和背景色計算第三種顏色?
我不得不爲C++/VCL應用程序中的特定控件編寫自己的鼠標懸停代碼。問題是,由於任何前景和背景顏色的組合,你如何計算高光顏色來表明鼠標在該控件上?
我不問如何選擇基於背景顏色的字體/文本顏色。這個問題當然得到了答覆。我需要做的是選擇第三種顏色來在鼠標懸停時突出顯示該項目。
我在想我可能想要做一些類似於背景顏色,在色輪上找到它的對立面(我不知道該怎麼做)。如果該顏色太接近(但是您確定)顏色,請將其設置爲更亮或更暗。
有沒有人有他們願意分享的算法?
謝謝!
此線程似乎有一個關於混合顏色很好的研究答案:http://stackoverflow.com/questions/14819058/mixing-two-colors-naturally-in-javascript – edencorbin
也許你可以只交換顏色。 –
從r g中計算亮度b。如果亮度> THRESHOLD:亮度+ = X;其他亮度 - = X.這樣你可以增加懸停時的邊緣性,如果已經太亮就會簡單地使背景變暗 – I3ck