私のウェブアプリではチャットルームを持っています。私は各ユーザーの名前をすべて黒ではなく色分けしてもらいたいと思っています。これを達成する最良の方法は何ですか?彼らは私のアプリにサインアップし、その文字列をデータベースのレコードの一部としてフィールドとして入れて、各ユーザーの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. 各ユーザーにユニークなURLを与える方法
- 3. Firebaseのユニークなユーザー名
- 4. ユニークなユーザーの署名
- 5. PHPの各ユーザー(セッション?)の本当のユニークな番号を作成する方法
- 6. Devits for Railsのユニークなユーザー名
- 7. nodejsのユーザー名に基づいたユーザーのユニークなメッセージ
- 8. MongoDBでトラッキングするユニークなユーザー
- 9. UIAlertViewController.actionSheetの各アクションのスウィフト異なる色
- 10. SQL Serverの1つのテーブルの各列のユニークな結果
- 11. GNUplotのヒストグラム(各バーは異なる色)
- 12. ウーコマースの各製品のユニークなURLを持つカスタムボタン
- 13. 各ユニークな行のすべてのインデックスを取得する
- 14. 各ユーザー
- 15. 各ビデオのユニークなビューを数える方法
- 16. 同じプロジェクトのファイルの自動ユニークな色
- 17. 異なるユーザーのためのユニークなタグ
- 18. PHPで異なるユーザーのユニークなテーブルを作成
- 19. 各レコードの色はlaravel 5
- 20. 各ng-repeatでユニークなデータ属性が必要です
- 21. 各ユーザーIDのソケットルーム?
- 22. Railsの - すべてのユーザー=ユニーク
- 23. jquery - 各クラス名がユニークなスプライトベースのナビゲーションのアクティブな状態を設定する
- 24. ユーザー設定可能なCSSの色
- 25. PHP内の各ユーザーのカスタムリンク
- 26. MYSQL select文 - 各ユーザー
- 27. Google BigQuery - 各ユーザーのカスタムクォータ
- 28. 各色の各列の平均BGR値を調べる
- 29. ユーザーごとにユニークなIDを取得するSQL
- 30. チームまたはユーザー間でユニークなスラックユーザーIDとアクセストークン
この解決策は、ユーザーの選択を制限し、白または明るいピンクのような愚かなものを選ぶことを止めます。後で色を追加できるように柔軟性があります – Tom