我在自定義標籤中繪製一些文本。顏色:如果背景爲黑色,則爲白色,當爲淺色時爲黑色
用戶可以修改標籤背景,但控件應該根據指定的背景調節文本的可見性。
所以,當背景是DARK時,我想繪製白色的前景文字,當它的LIGHT我想要BLACK前景時。
如何「理解」顏色是淺或深?
我在自定義標籤中繪製一些文本。顏色:如果背景爲黑色,則爲白色,當爲淺色時爲黑色
用戶可以修改標籤背景,但控件應該根據指定的背景調節文本的可見性。
所以,當背景是DARK時,我想繪製白色的前景文字,當它的LIGHT我想要BLACK前景時。
如何「理解」顏色是淺或深?
一個簡單的解決方案是添加背景顏色的顏色組件並將它們與閾值進行比較。
你可能想給藍色更低的重量。 0.3*R+0.6*G+0.1*B
是常見的選擇。
我不需要給定顏色的深色或淺色。我需要確定一個給定的顏色本身是暗色還是淡色。 – serhio
http://stackoverflow.com/questions/97646/how-do-i-determine-darker-or-lighter-color-variant-of-a-給定顏色/ 97697#97697 –
@KMån:我不需要顏色的較暗或較亮的變體。我需要檢測給定顏色本身是淺色還是黑色。 – serhio
你可能想接受你自己的答案。使用預定義的功能顯然比重新發明車輪更好。 – CodesInChaos