[解決済み】背景色からフォントカラーを決定する方法
2022-04-01 20:11:15
質問
あるセクションの背景色はカスタマイズできるが、フォントカラーはカスタマイズできないシステム(ウェブサイトなど)の場合(オプションの数を最小限に抑えるため)、フォントカラーが必要かどうかをプログラム的に判断する方法はありますか?
何かアルゴリズムがあるのでしょうが、色や明度など、自分で計算できるほどの知識はありません。
どのように解決するのですか?
私も同じような問題に遭遇しました。カラースケールやヒートマップ上のテキストラベルを表示するために、対照的なフォントカラーを選択する良い方法を見つけなければならなかったのです。つまり、単純に補色を生成するのは良い解決策ではなく、時には奇妙で非常に強い色が生成され、見るのも読むのも困難でした。
この問題を解決するために何時間もテストした結果、quot;dark"の色には白いフォント、quot;bright"の色には黒いフォントを選択することが最善の解決策であることが判明しました。
以下は、私がC#で使っている関数の例です。
Color ContrastColor(Color color)
{
int d = 0;
// Counting the perceptive luminance - human eye favors green color...
double luminance = (0.299 * color.R + 0.587 * color.G + 0.114 * color.B)/255;
if (luminance > 0.5)
d = 0; // bright colors - black font
else
d = 255; // dark colors - white font
return Color.FromArgb(d, d, d);
}
これは、多くの様々なカラースケール(レインボー、グレースケール、ヒート、アイス、その他多数)に対してテストされ、私が見つけた唯一の"ユニバーサル"メソッドである。
編集
カウントの計算式を変更しました。
a
をquot;知覚的輝度(perceptive luminance")に変更すると、本当に良くなりました。すでに私のソフトウェアに実装しました。
編集2 WebSeedがこのアルゴリズムの素晴らしい実用例を提供してくれました。 http://codepen.io/WebSeed/full/pvgqEq/
関連
-
[解決済み] 大きなӨ記号は具体的に何を表すのですか?
-
[解決済み] 2つの日付範囲が重なっているかどうかを判定する
-
[解決済み] node.jsのコンソールのフォントカラーを変更する方法は?
-
[解決済み] 円周率の計算が正確かどうかを判断するにはどうしたらよいですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】有向グラフのサイクルを検出する最適なアルゴリズム【クローズド
-
[解決済み】整数の流れから実行中央値を求める
-
[解決済み】iTunes 11の曲リストに色をつけるアルゴリズムはどうなっているのでしょうか?[クローズド]
-
[解決済み】丸められたパーセンテージを100%にする方法
-
[解決済み] [解答】ある数字が与えられたとき、元の数字と全く同じ桁数の次の数字を求めよ。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] O(log n)とは具体的にどういう意味ですか?
-
[解決済み] 数字の範囲を表すときの「exclusive」「inclusive」の意味は?
-
[解決済み] RGBカラーの知覚的な明るさを決定する公式
-
[解決済み】なぜBase64を使うのか?
-
[解決済み】美観を損なわないカラーパレットをランダムに生成するアルゴリズム【終了しました
-
[解決済み】ある点が2次元の三角形の中にあるかどうかを判断する方法は?[クローズド]
-
[解決済み】2つの整数を1つにマッピングする、一意的かつ決定論的な方法
-
[解決済み】big-O時間複雑度の高いアルゴリズムが低いアルゴリズムより好ましいと思うケースはありますか?
-
[解決済み】丸められたパーセンテージを100%にする方法
-
[解決済み】セグメントツリー、インターバルツリー、バイナリーインデックスツリー、レンジツリーの違いは何ですか?