私のウェブアプリではチャットルームを持っています。私は各ユーザーの名前をすべて黒ではなく色分けしてもらいたいと思っています。これを達成する最良の方法は何ですか?彼らは私のアプリにサインアップし、その文字列をデータベースのレコードの一部としてフィールドとして入れて、各ユーザーの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)をキューに押します。
このプロセスを続行...
あなたは、自動的に各ユーザーのために可能な限り広範な区別できる色を持っています。
私は固定色のリストを持っていて、そこから選択してデータベースにインデックスを格納するようにしました。、2 = green
などです。これにより、各色の色合いを変更することができますあなたのサイトは進化しています。
たとえば、「赤い」があなたのロゴと同じ赤に一致するようにすることができます。これを単に "赤"ではなくデータベースにRGB値として保存していれば、変更するのがずっと難しくなります。
あなたの目標がチャットルーム内の一目でユーザを区別できるようにすることは、ユーザベースの大きさによって異なります。チャットルームの平均サイズが、例えば10であるにもかかわらず、ユーザーベースが数千である場合、それぞれの固有の色を持つことは機能しません。最終的に、同じチャットルームに表示される同じ色のわずかに異なる色合いになります。
この場合、ちょうど異なる色の短いリストを保持し、1つのチャットルーム内に割り当てます。あなたのスキームに代わるものとして
:
のirssi(と他の人が行う)のようにあなたがそれを行うことができますし、単に画面ニックの(お好みの機能を使用して)ハッシュに基づいて色を割り当てます。このシステムでは、ニックネームと色の長さは無関係であるはずですから、異なる文字、異なるスクリーン名、色の組み合わせは、物事を区別できるようにするのに十分なはずですが、セッションごとに一貫していなければなりません。このスキームでは、キャッシュする必要があるのはで、セッションごとにのユーザー名ごとに色が付いているので、md5呼び出しの数を増やす必要はありません。これは、各ユーザー(それから遠い)に異なる色を保証するものではなく、その仕様で達成しようとしている目的について考えるべきかもしれません。
- 1. ユニークなユーザーID
- 2. ユニークなユーザーの署名
- 3. PHPの各ユーザー(セッション?)の本当のユニークな番号を作成する方法
- 4. Devits for Railsのユニークなユーザー名
- 5. MongoDBでトラッキングするユニークなユーザー
- 6. 各ユーザー
- 7. 異なるユーザーのためのユニークなタグ
- 8. 各ユーザーIDのソケットルーム?
- 9. jquery - 各クラス名がユニークなスプライトベースのナビゲーションのアクティブな状態を設定する
- 10. Railsの - すべてのユーザー=ユニーク
- 11. MYSQL select文 - 各ユーザー
- 12. PHP内の各ユーザーのカスタムリンク
- 13. 各隅のブラシの色が異なる境界線のスタイル
- 14. jqGridの各セルにユニークなCSS IDを割り当てる方法は?
- 15. WPF XAMLでボーダーの各辺の色が異なりますか?
- 16. TextArea内に異なる色の各ラインを表示
- 17. 各リストビューの行に異なる色を設定しました
- 18. ユニークなベースクラスのインスタンス
- 19. bashのユニークな行
- 20. MySQLのユニークなインデックスデザイン
- 21. SQLのユニークな値
- 22. ユニークなインデックスへのユニークでないインデックスの変更
- 23. ユニークなアプリケーションキー
- 24. ユニークなデータバインド
- 25. は - ユニークな行
- 26. イベントごとの背景色をユニークにする
- 27. Androidの各ユーザーの一意のID
- 28. Joomlaの各ユーザーのロゴを変更
- 29. ユニークなID :: InterlockedIncrement(VC++)
- 30. ユニークな合成名
この解決策は、ユーザーの選択を制限し、白または明るいピンクのような愚かなものを選ぶことを止めます。後で色を追加できるように柔軟性があります – Tom