在我的網絡應用程序中,我有一個聊天室。我希望每個用戶的名字都有不同的顏色,而不是全部使用黑色。達到此目的的最佳方法是什麼?我應該爲每個用戶存儲RGB/HEX代碼,因爲他們註冊到我的應用程序並將該字符串作爲字段作爲其數據庫中記錄的一部分?每個用戶的獨特顏色
回答
特別是使用色相值從HSV/HSL生成顏色。然後轉換爲RGB。
See my answer here for more information on HSV/HSL
你可能想盡可能的顏色每次不同。
你可以通過保持顏色範圍的隊列來做到這一點。
如果隊列爲空,則返回色相0並將該對(0,360)插入到隊列中。 下一次你想要一個顏色彈出隊列中的元素(0,360),並返回這些值之間的中點:180.然後將(0,180)和(180,360)推入隊列。
下一次你想要一個顏色彈出隊列中的元素(0,180),並返回這些值之間的中點:90.然後將(0,90)和(90,180)推入隊列。
下一次你想要一個顏色彈出隊列中的元素(180,360),並返回這些值之間的中點:270.然後將(180,270)和(270,360)推入隊列。
繼續這個過程......
您將自動獲得儘可能區分顏色爲每個用戶。
我有一個固定的顏色列表,讓用戶從中選擇並在數據庫中存儲索引,1 = red
,2 = green
等。這將允許您更改每種顏色的陰影以匹配設計您的網站隨着它的發展。
例如,您可能希望「紅色」與您的徽標匹配相同的紅色;如果您已將此值存儲爲數據庫中的RGB值而不是「紅色」,則更改難度會更大。
如果您的目標是讓用戶在聊天室內一目瞭然,這取決於您的用戶羣有多大。如果一個聊天室的平均大小是10,但是你的用戶基數是幾千,那麼爲他們每個人分配一個獨特的顏色是行不通的。最終你會在相同的聊天室中看到相同顏色的稍微不同的陰影。
在這種情況下,只保留一個明顯不同顏色的簡短列表,並將它們分配到單個聊天室中。
作爲替代你的計劃:
你可以不喜歡它IRSSI(和其他人),只是指定顏色基於散列(使用你選擇的功能)的屏幕缺口的。在這個系統下,缺口和顏色的長度(應該/將會)是不相關的,所以不同字母,不同屏幕名稱和不同顏色的組合應該足以使得事物可區分,但是在會話之間是一致的。在這個方案中,你可能必須緩存的這個唯一的東西是,因爲會話是每個用戶名的顏色,所以你不必做很多md5調用。這並不能保證每個用戶都有不同的顏色(遠離它),也許你應該考慮你試圖用這個規範達到的目的。
- 1. Django每個用戶的獨特模型
- 2. asp中每行的單獨顏色:TextBox
- 3. GGPLOT2:每面單獨的顏色規模
- 4. 更改圓形背景的顏色,每個圖標的單獨顏色
- 5. PHP int以獨特的rgb顏色
- 6. LINES(M)獨特的顏色Matlab
- 7. 爲SSRS圖表中的每個類別組設置獨特的顏色
- 8. Magento獨特TaxVat atrribute爲每個客戶
- 9. 爲顏色圖和顏色條中的兩個(或多個)特定值添加單獨的顏色
- 10. 多個地塊中每個地塊的單獨背景顏色
- 11. 如何可視化輸出集羣,每個集羣獨特的顏色
- 12. 如何爲每個頁面提供獨特的特色鏈接?
- 13. 如何給每個用戶一個獨特的網址
- 14. 每個獨特的價值
- 15. 每個TreeItem的獨特ContextMenu
- 16. 用jmeter模擬200個用戶,每個用戶都有獨特的登錄
- 17. 獨特的django管理網站爲每個不同的用戶
- 18. 熱圖用顏色的每個在plotly
- 19. 如何給一個CGPoint線提供獨特的顏色Xcode
- 20. 爲數據庫中的每個用戶存儲顏色數組
- 21. 檢測用戶角色,如果這個特定的用戶角色顯示獨特的內容(WordPress的PHP)
- 22. Rails 3 - 獨特的子域和登錄每個用戶
- 23. 如何爲每個用戶製作獨特的模型?
- 24. 如何爲每個用戶創建獨特的會話? - Node.js
- 25. 爲每個用戶創建獨特的鏈接
- 26. 每個用戶獨特的有序號碼
- 27. 爲每個用戶生成獨特的SALT?
- 28. 在每一行顯示特定顏色
- 29. 使用不同顏色爲每個錯誤條顏色
- 30. ASP.NET HttpContext每個用戶的獨佔值
該解決方案限制了用戶的選擇,並阻止他們選擇像白色或亮粉色的傻東西。它非常靈活,以便您可以稍後添加其他顏色 – Tom 2009-05-20 11:46:55