在我的网络应用程序中,我有一个聊天室。我希望每个用户的名字都有不同的颜色,而不是全部使用黑色。达到此目的的最佳方法是什么?我应该为每个用户存储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. asp中每行的单独颜色:TextBox
- 2. GGPLOT2:每面单独的颜色规模
- 3. 更改圆形背景的颜色,每个图标的单独颜色
- 4. 为SSRS图表中的每个类别组设置独特的颜色
- 5. Magento独特TaxVat atrribute为每个客户
- 6. 如何给每个用户一个独特的网址
- 7. 用jmeter模拟200个用户,每个用户都有独特的登录
- 8. 独特的django管理网站为每个不同的用户
- 9. 热图用颜色的每个在plotly
- 10. 为数据库中的每个用户存储颜色数组
- 11. 检测用户角色,如果这个特定的用户角色显示独特的内容(WordPress的PHP)
- 12. 为每个用户创建独特的链接
- 13. 每个用户独特的有序号码
- 14. 为每个用户生成独特的SALT?
- 15. Rails 3 - 独特的子域和登录每个用户
- 16. 在每一行显示特定颜色
- 17. 为包括全局用户在内的每个用户实施独特价值
- 18. SlickNav菜单,每个具有特定颜色背景的li?
- 19. 如何使用每个单元格中的独特颜色突出显示单元格onClick
- 20. 每个顶点颜色的SceneKit
- 21. 改变每个区域的颜色
- 22. 更改UIScrollView中每个UILabel的颜色
- 23. 斯威夫特 - 如何绘制一条线,每个点可以有一个单独的颜色
- 24. 如何为每列设置单独的柱状图颜色?
- 25. 每位用户使用Flask-Security的独特盐
- 26. 生成随机的,但独特的颜色
- 27. 为不同的值组合分配独特的颜色Python
- 28. 每个指令的独特计时器
- 29. JavaFX - 每个舞台的独特场景
- 30. 每个独特/不同值的计算
该解决方案限制了用户的选择,并阻止他们选择像白色或亮粉色的傻东西。它非常灵活,以便您可以稍后添加其他颜色 – Tom 2009-05-20 11:46:55